本文总结了ES6中的数组6个方法:find
、filter
、every
、some
、includes
、reduce
如果需要javascript中的数组的方法,请点击这个链接;里面包含15种数组的方法和小例子,简单易懂;
- find() 从左到右依次查找,找到一个就不往后找了;如果找不到,那么返回undefined;
返回找到的那一项;
不改变原数组
;
let arr = [1,23,4,56];
let a = arr.find((item,index)=>{
console.log("item",item);
console.log("index",index);
return item >20; //返回true,说明就找到了;
})
console.log("a",a);
- filter() 过滤;把所有符合条件的数组成员放到一个新数组中返回;
返回一个过滤后的新数组,
不改变原数组
;
let arr = [1,23,4,56];
let b = arr.filter((item,index)=>{
console.log("item",item);
console.log("index",index);
return item>20;
//根据回调函数的返回值,返回true就留下,返回false,就不要;
})
console.log("b",b);
- every() 每一个都是true则返回true,如果有一个是false,那么直接返回false;
返回一个布尔值;
不修改原数组
;
特点:every对每一个元素执行一个callback,直到它找到一个使 callback 返回 false的元素,就返回false,只要找到false,直接结束,不再继续向下查找;直到遍历完成也没有返回false的话,就返回true;
let e = arr.every((item,index)=>{
console.log(19);
return item>13;
})
console.log(e);
- some() 返回一个布尔值,只要有一个符合条件就返回true;找到true,就不再向右进行查找;
不修改原数组
;
特点:找到true就停下,不再向右查找;
let arr = [1,23,4,56];
let d = arr.some((item,index)=>{
console.log("item",item);
console.log("index",index);
return item > 20;
})
console.log("d",d);
- includes 存在就返回true,不存在返回false;
返回一个布尔值;
不修改原数组
;
let arr = [12,3,45,6,78];
console.log(arr.includes(45)); //true
- reduce 收敛,求和;
不修改原数组
;
reduce()方法接收一个回调函数作为第一个参数,回调函数又接受四个参数,分别是;
1、prev =>初始值或上一次回调函数叠加的值;
2、next => 本次回调(循环)将要执行的值;
3、index=>“currentValue”的索引值;
4、arr => 数组本身;
reduce()方法返回的是最后一次调用回调函数的返回值;
let arr = [12,3,45,6,78];
let a = arr.reduce((prev,next)=>{
// prev : 第一次代表数组的第一项,以后都代表上一次回调函数的返回值;
console.log(prev,next);
// return prev +next;
return 100;
},100); //arr数组变为[100,12,3,45,6,78];
console.log(a);
let arr = [{count:3,price:10},{count:2,price:20},{count:6,price:12}];
/*let s = arr.reduce((prev,next)=>{
if(typeof prev==="number"){
return prev+ next.count*next.price;
}else{
return prev.count*prev.price + next.count*next.price;
}
})*/
let s = arr.reduce((prev,next)=>{
return prev + next.count*next.price;
},0);
console.log(s);
reduce可以拼接数组
let ee = [[12,3,45,6],[7,88],[9]].reduce((prev,next)=>{
return prev.concat(next);
})
//[12,3,45,6,7,88,9]