ES7 中的 Array.prototype.find 和 Array.prototype.findIndex 方法详解

阅读时长 5 分钟读完

ES7 中的 Array.prototype.find 和 Array.prototype.findIndex 方法详解

ES7 中新增了两个 Array.prototype 上的方法,分别是 Array.prototype.findArray.prototype.findIndex,它们可以很方便地用来查找数组中符合条件的元素,本文将详细介绍这两个方法。

Array.prototype.find 方法

Array.prototype.find 方法用于找出符合条件的第一个元素,并返回该元素,如果没有找到,返回 undefined。它的语法为:

其中,callback 是一个用来测试数组中每个元素的函数,它可以接受三个参数:

  • element:表示当前处理的元素;
  • index:表示当前处理的元素下标;
  • array:表示原数组。

thisArg 是执行回调函数时使用的 this 值。

下面是一个查找数组中第一个大于 5 的元素的例子:

Array.prototype.findIndex 方法

Array.prototype.findIndex 方法与 Array.prototype.find 方法类似,也是用于查找符合条件的元素,但是它返回的是符合条件的元素在数组中的下标,如果没有找到,返回 -1。它的语法为:

其中,callbackthisArg 的含义与 Array.prototype.find 方法相同。

下面是一个查找数组中第一个大于 5 的元素的下标的例子:

实战应用

这两个方法可以用于很多实际场景中,下面介绍两个例子。

搜索

Array.prototype.find 方法实现搜索功能非常方便。例如,我们可以实现一个搜索框,在用户输入关键字后,在列表中查找符合条件的记录并展现出来。示例代码如下:

-- -------------------- ---- -------
------ ----------- ---------------- --
--- ----------
  --------------
  ---------------
  -------------
  -------------------
-----
--------
----- ----------- - ---------------------------------------
----- ---- - -----------------------------------------------------------
------------------------------------- - -- -
  ----- ------- - ---------------
  ----------------------------- -- -
    -- -------------------------------- --- --- -
      -- ----------
      ------------------ - -------
    - ---- -
      -- ---------
      ------------------ - --------
    -
  ---
---
---------

删除

Array.prototype.findIndex 方法实现删除功能也非常方便。例如,我们可以实现一个 todoList,用户点击删除按钮时,删除对应的记录。示例代码如下:

-- -------------------- ---- -------
--- --------------
  ------ ---------- ------- -------------------------------
  ------ --- ------- -------------------------------
  ------ ---- ------- -------------------------------
-----
--------
----- -------- - ------------------------------------
---------------------------------- - -- -
  -- ----------------- --- --------- -
    ----- ----- - -----------------------
    ----- ----- - ------------------------------------------------
    ----- ------ - ---------------------- -- -- -
      ------ - --- --------------
    ---
    -- ------- --- --- -
      ------------------------------------
    -
  -
---
---------

总结

Array.prototype.findArray.prototype.findIndex 是两个非常实用的方法,它们能够很方便地查找符合条件的元素,简化了代码的编写。需要特别注意的是,这两个方法在旧版本的浏览器中可能不受支持,需要使用 polyfill 进行兼容性处理。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649ba6b148841e989486c845

纠错
反馈