1、includes()
let arr = [1,2,3,4,55];
arr.includes(5);
返回的是布尔类型
2、find() 可以找出带几的项
let arr = [1,2,23,4,55,555];
arr.find(function(item,index){
return item.toString().indexOf(5)>-1
}) //只找到55
返回找到的那一项,不会改变原数组,回掉函数中返回true表示找到了,找到后就停止循环,找不到返回undefined
找到具体的某一项用find
例如:用户列表,找用户的用户名和密码,找到后就停止循环
3、some()、every()
let arr = [1,2,3,4,5];
arr.some(function(item,index){
return item.toString().indexOf(5)>-1
})
some() 找true 找到true后停止 返回true,找不到返回false
every() 找false 找到false后停止 返回false
4、reduce()
收敛函数 四个参数 ,返回叠加后的结果,原数组不发生变化,回调函数返回:
1)prev代表的是数组的第一项,next 代表数组的第二项,
2)prev是undefined,next变成第三项
求和1:
[1,2,3,4,5].reduce(function(prev,next,index,item){
return prev+next; //本次返回值会作为下一次的prev
})
求和2:
[{price:5,count:3},{price:5,count:3},{price:5,count:3}].reduce(function(prev,next){
return prev+next.price*next.count;
},0); //默认指定第一次的prev
二维数组变一维数组:
[[1,2,3],[4,5,6],[7,8]].reduce(function(prev,next){
return prev.concat(next);
})
5、map()
映射 将原有数组映射成一个新数组
[1,2,3]
1 2 3
let arr = [1,2,3].map(function(item){
return `${item} ` //['1 ','2 ','3 ']
})
arr.join('') //1 2 3
不改变原数组,返回新数组,回调函数中返回什么这一项就是什么
6、filter()
过滤
[1,2,3,4,5].fliter(function(item){
return item>2&&item<5 //[3,4]
})
不操作原数组,返回过滤后的新数组,回调函数中返回true表示这一项放到新数组中