ES6新增数组方法
map——>映射
arr.map(function(数组中的每一项){});//针对数组中的每一项进行操作
let arr = [1,2,3,4]; alert(arr); let arr2 = arr.map(function(x){ return x + 1; }); alert(arr2);
filter——>过滤
arr.filter(function(数组中的每一项){});//针对数组中符合条件的进行操作
let arr = [1,2,3,4]; alert(arr); let arr2 = arr.filter(function(x){ return x % 2; }); alert(arr2); //简写形式 let arr2 = arr.filter(x => x % 2);
forEach——>循环
arr.forEach(function(每一项的值value,每一项的索引index,数组本身array){});
arr.forEach(function(value,index,array){ //alert(value); //alert(index); //alert(array); console.log(value,index,array); });
reduce——>汇总
- arr.reduce(函数[,初始值])
- arr.reduce(function(前一个值pre,当前值cur,索引值index,数组本身arr){});
arr.reduce(function(pre,cur,index,array){ console.log(`pre is ${pre},cur is ${cur},index is ${index},array is ${array}`); });
如果没有指定初始值,默认会把数组的第一项作为初始值(第一个pre)
let arr = [1,2,3,4]; let sum = arr.reduce(function(pre,cur,index,array){ return pre + cur; }); alert(sum);//10
函数的返回值,每次作为前一个值
let arr = [1,2,3,4]; let sum = arr.reduce(function(pre,cur,index,array){ return pre + cur; }); alert(sum);//10
如果指定了初始值,初始值作为第一次的pre值
let arr = [1,2,3,4]; let sum = arr.reduce(function(pre,cur,index,array){ return pre + cur; },100); alert(sum);//110
利用reduce方法将二维数组转换为一维数组
arr1 = [[1,2],[3,4],[5,6]]; let arr2 = arr1.reduce(function(pre,cur,index,array){ return pre.concat(cur); }); alert(arr2);