JavaScript 数组搜索
1、indexOf 与 lastIndexOf 方法
indexOf 方法返回与参数匹配的第一个元素的索引,如果没有则返回 -1;
而 lastIndexOf 与 indexOf 相反,它会返回与参数匹配的最后一个元素的索引。如:
let arr = [0,1,2,3,1,4,5,6];
arr.indexOf(1);// 返回 1
arr.lastIndexOf(1)// 返回 4
2、 find 与 findIndex 方法
find 与 findIndex 方法 皆可接收一个回调函数,搜索一个满足回调函数条件的值。
不同的是,find 方法返回第一个满足条件的值,而 findIndex 返回这个值在数组里的索引。
如果没有满足条件的值,find 会返回 undefined ,而 findIndex 返回 -1
let arr = [1,1,1,2,3,4,5,6,7,8];
arr.find(x => x % 2 == 0); // 2
arr.findIndex(x => x % 2 == 0);// 3
3、includes 方法
includes 方法会迭代数组里所有的元素,当它找到与参数匹配的元素时,返回true,否则返回false。
let arr = ["Rarin","Chen","235"];
arr.includes("Rarin");// true
arr.includes("cc");// false
如果给 includes 方法传入一个起始索引,那么搜索将会从索引指定的位置开始。
let arr = ["Rarin","Chen","235"];
arr.includes("Rarin",1);// false