一: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()
发表回复