ES6中数组方法find()、findIndex()与filter()
find()
该方法主要用于查找出第一个符合条件的数组中元素,该方法的参数为一个回调函数,在回调函数中设置你要查找元素的条件,当符和该查找条件时返回该元素,否则返回undefind
const myArr=[1,2,3,4,5,6];
const v=myArr.find(value => value > 0);
const b=myArr.find(value => value < 0);
console.log(v);// 1
console.log(b);// undefin
find只会查找返回第一个符和条件的元素,找到后立刻返回不会再返回数组中其他符和条件的元素
findIndex()
findIndex和find的使用方法相同,区别在于当符和查找条件时findIndex返回的是该元素的索引值,没有符和的元素时返回的是-1
const myArr=[1,2,3,4,5,6];
const v=myArr.findIndex(value => value > 0);
const b=myArr.findIndex(value => value < 0);
console.log(v);// 0
console.log(b);// -1
与find类似,findIndex在查找出第一个符和的元素后不会再向下查找
filter()
filter常用于筛选出符和条件的所有元素,当待过滤的数组没有符和条件得元素时候返回undefin
const myArr=[1,2,3,4,5,6];
const v=myArr.filter(value => value > 1);
const b=myArr.filter(value => value < 0);
console.log([...v]);// [2, 3, 4, 5, 6]
console.log([...b]);// []
总结
find | findInd | filter | |
---|---|---|---|
查找到结果后是否继续查找 | 否 | 否 | 是 |
有结果/没结果 | 元素/undefind | 对应元素下标/-1 | [符和条件元素]/[] |
常用场景 | 查找 | 查找 | 过滤出对应元素 |