ES6数组-新增的数组接口方法

2次阅读

共计 847 个字符,预计需要花费 3 分钟才能阅读完成。

一:find() 返回符合条件的第一个元素
find 方法接收 2 个参数,第一个参数为一个回调函数,第二个参数指定回调函数里的 this。大概如下:find(function(value, index, thisArray){}, this)
其中,回调函数本身接受三个参数:元素的值,元素的下标,数组本身;回调函数的功能逻辑是想要寻找的元素应当满足的某种条件。一旦某个元素满足这个条件,则立即返回当前元素,不再查找。这就意味着,find()方法会返回满足条件的第一个元素。我们来看一下具体示例:

let obj = {level: 3};
let array = [1, 2, 3, 4, 5];
let foundItem = array.find(function (value, index, array) {return value > this.level;}, obj);
console.log(foundItem); // 4

我们通过 find()方法的第二个参数传入 obj,这时候回调函数里面的 this.level 就是 obj.level 为 3,我们找到 array 里第一个大于 3 的元素,所以得到 4.

这里有一点需要注意的是,如果你要指定 find()的第二个参数,那么回调函数不能用箭头函数。我们都知道箭头函数的 this 在其定义的时候就确定,不能给其指定一个新的 this,这样是不起作用的。

二:findIndex() 返回符合条件的第一个元素下标
findIndex() 和 find()的参数一样,唯一的区别是 findIndex()返回的是第一个满足条件的元素的下标:

let obj = {name: 'a'};
let array = ['a', 'b', 'a'];
let foundIndex = array.findIndex(function (value, index, array) {return value === this.name;}, obj);
console.log(foundIndex); // 0

返回第一个满足条件的元素的下标:0。

三:fill()
四:copyWithin()

正文完
 0