1.Array.forEach();(遍歷)
從頭到尾遍歷數(shù)組 (沒有返回值 只能通過(guò) try/catch 終止循環(huán))
它不改變?cè)瓟?shù)組荞下,它有三個(gè)參數(shù),
第一個(gè)參數(shù):元素词渤;
第二個(gè)參數(shù):下標(biāo);
第三個(gè)參數(shù):原數(shù)組串绩;
var arr = [2,3,4,5];
var res= arr.forEach(function(ele, index, array){
console.log(ele, index, array);
});
console.log(res);//undefined;
輸出結(jié)果:
2.Array.map();(映射)
它要有返回值 return 返回被加工的新元素
返回新的數(shù)組缺虐,不改變?cè)瓟?shù)組
var arr = [2,3,4,5];
var res= arr.map(function(ele, index, array){
// console.log(ele, index, array);
return ele +1;
});
console.log(res);//加工后的數(shù)組
console.log(arr);//原數(shù)組
輸出結(jié)果:
3.Array.filter();(過(guò)濾)
它返回滿足條件的元素,組成新的數(shù)組
return 條件礁凡;//元素是否滿足定義的條件高氮;
var arr = [2,3,4,5];
var res= arr.filter(function(ele, index, array){
// console.log(ele, index, array);
return ele >=4;
});
console.log(res);//過(guò)濾后的數(shù)組
console.log(arr);//原數(shù)組
輸出結(jié)果:
4.Array.every(); 和 Array.some();
every();每一項(xiàng)都返回ture,則返回ture顷牌;
some();某一項(xiàng)返回ture剪芍,則返回ture;
//every();
var arr = [2,3,4,5];
var res = arr.every(function(ele,index, arr){
console.log(ele,index, arr);
return ele>1;
});
console.log(res);
//some();
var arr = [2,3,4,5];
var res = arr.some(function(ele,index, arr){
console.log(ele,index, arr);
return ele>3;
});
console.log(res);
every();的輸出結(jié)果:
some();的輸出結(jié)果:
5.Array.reduce(); 和 Array.reduceRight();
使用指定的函數(shù)將數(shù)組元素進(jìn)行組合韧掩,生成單個(gè)值
指定函數(shù)中第一個(gè)參數(shù)為前一個(gè)值
第二個(gè)參數(shù)為前一個(gè)值
array.reduce(function(上一個(gè)值紊浩,當(dāng)前元素{}窖铡,起始值)
reduce()疗锐;從數(shù)組的第一項(xiàng)開始,逐個(gè)遍歷到最后一個(gè)费彼;
reduceRight()滑臊;則從數(shù)組的最后一項(xiàng)開始向前遍歷到第一項(xiàng);
//reduce();
var arr = [2,3,4,5];
var res = arr.reduce(function(pre,cur,index){
console.log(pre,cur,index);
return pre+cur;
},10);
console.log(res);
//reduceRight();
var arr = [2,3,4,5];
var res = arr.reduceRight(function(pre,cur,index){
console.log(pre,cur,index);
return pre+cur;
},10);
console.log(res);
reduce();的輸出結(jié)果:
reduceRight();的輸出結(jié)果: