1. Array.includes 替代 Array.indexOf
如果需要查找一个元素在数组中的具体索引,并且后面需要这个索引值,使用Array.indexOf(返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1); 但是如果只需要知道数组中 存不存在该元素(布尔值),则直接使用Array.includes即可
var a = [3,6,1,3,6];
a.indexOf(6); //输出 1
a.indexOf(3); //输出 0
a.indexOf(8); //输出 -1
a.includes(6); //输出 true
a.includes(7); //输出 false
2. Array.find 替代 Array.filter
如果知道经回调函数过滤后,只会剩余唯一的一项,那么建议使用Array.find;Array.filter 必须遍历整个数组。如果原数组中有成千上万项,回调函数需要执行的次数是相当多的,Array.find与 Array.filter 一样需要一个回调函数,(但只是返回)符合条件的第一项,当找到符合回调函数过滤条件的第一个元素时,它会立即停止往下的搜寻,不再遍历整个数组。
var a = [5,3,9,6];
a.filter(function(val) {
console.log(val);
return val > 5;
});
//输出 返回过滤后的数组
5
3
9
6
(2) [9, 6]
var a = [5,3,9,6];
a.find(function(val) {
console.log(val);
return val > 5;
});
//输出 返回找到的第一个元素
5
3
9
9
3.Array.some 替代 Array.find
var a = [5, 3, 9, 6];
a.some(function(val){
console.log(val);
return val>5
});
//输出
5
3
9
true