数组应用(indexOf,includes,find,findindex)
1.indexOf 寻找下标
从左到右搜索第一个===的下标。
[1,2,3].indexOf(1); // 0
[1,2,3].indexOf('1'); // -1,因为不全等,找不到就返回-1
[1,2,3,1,5,6].indexOf(1, 2); // 3,第二个参数是从x下标开始搜索
lastIndexOf
从右往左搜索第一个===的下标。
[1,2,3,1,5,7].lastIndexOf(1); // 3
[1,2,3,1,5,7,1,5].lastIndexOf(1, 100); // 6 第二个参数是从x下标开始搜索
[1,2,3,1,5,7,1,5].lastIndexOf(1, 5); // 3
includes
判断数组内是否有===的项。
[1,2,3,4,5,6].includes(1); // true
[1,2,3,4,5,6].includes('1'); // false,因为不全等
[1,2,3,4,5,6].includes(8); // false
find
根据条件查找数组内的单个项,根据条件查找项,只要返回true那就证明找到了,如果为false的话,那就继续遍历查找。
[1,2,3].find(c=> c === 1); // 1
[1,2,3].find(c=> c == '1'); // 1
[1,2,3].find(c=> c === 5); // undefined
[1,2,3].find(c=> c > 1); // 2
const people = [{
name: "Matt",
age: 27
},
{
name: "Nicholas",
age: 29
}];
//三个参数分别是:当前遍历的项、当前下标、原始数组。
let p = people.find((element, index, array) => {
console.log(element, index, array);
return element.age > 28;
});
console.log(p); // {name: "Nicholas", age: 29}
findIndex
根据条件查找数组内匹配项的下标。
[{ age: 20 }, { age: 18 }, { age: 10 }].findIndex(function (item) {
return item.age === 10
}); //2
[1,2,3].findIndex(c=> c === 5); // -1
[1,2,3].findIndex(c=> c > 1); // 1