ES7 中的 Array.prototype.find() 和 Array.prototype.findIndex() 方法
在 ES6 中,我们已经接触到了 Array 类型的新加强,如 Array.prototype.includes() 和 Array.prototype.fill()。ES7 (2016 年) 又新增了两个数组方法,即 Array.prototype.find() 和 Array.prototype.findIndex()。这两个方法主要用于查找数组中特定的元素,并将其返回。
Array.prototype.find()
Array.prototype.find() 方法用于查找数组中满足条件的第一个元素,并将该元素返回。该方法接收一个回调函数作为参数,该函数用于定义查找的条件。如果找到了满足条件的元素,则返回该元素,否则返回 undefined。
该方法的语法如下:
--------------------------- ------- ---------- ---------
其中,callback 是一个必需的回调函数,用来设定查找元素的条件。该回调函数接受三个参数:element 表示正在处理的当前元素,index 表示正在处理的当前元素的下标,array 表示调用该方法的数组。
thisArg 为可选参数,表示执行 callback 函数时的 this 值。
下面是一个简单的例子:
----- ---- - ---- --- --- --- ---- ----- ------ - ------------- -- --- - ---- -------------------- -- --
以上代码表明,查找 ages 数组中第一个大于 21 的元素,并将该元素的值返回。
需要注意的是,Array.prototype.find() 方法返回的是查找到的元素本身,而不是该元素在数组中的下标。
Array.prototype.findIndex()
Array.prototype.findIndex() 方法和 Array.prototype.find() 类似,都是用于查找数组中第一个满足条件的元素。不同之处在于,Array.prototype.findIndex() 方法返回的是满足条件的元素在数组中的下标,而且如果没有找到符合条件的元素则返回 -1。
该方法的语法如下:
-------------------------------- ------- ---------- ---------
其中的参数意义同 Array.prototype.find() 方法。
以下是一个具体示例:
----- ------ - --------- --------- ---------- ----- ----------- - ---------------------- -- ----- --- ---------- ------------------------- -- -
以上代码表明,查找 fruits 数组中第一个值为 'banana' 的元素,并将其在数组中的下标返回。
需要注意的是,Array.prototype.findIndex() 方法不会对数组进行修改,它只是对数组进行查找并返回符合条件的第一个元素的下标。
总结
Array.prototype.find() 和 Array.prototype.findIndex() 是 ES7 中新增的两个数组方法,它们都用于查找数组中的元素,并将符合条件的元素或其下标返回。
当我们需要在数组中查找某个元素时,使用这两个方法可以让我们的代码更加简洁易读。但是,需要注意的是这两个方法虽然可以代替传统的 for 循环,但是它们底层仍然会遍历整个数组,因此在大数据量的情况下,性能可能会受到影响。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6498d1cd48841e98945c5820