ES7 中的 Array.prototype.find() 和 Array.prototype.findIndex() 方法

阅读时长 3 分钟读完

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

纠错
反馈