一、map()
映射(一对一) ,返回新数组,不改变原数组值
let arr=[1,2,3,4,5]
let newarr= arr.map(item=>{ //[2,4,6,8,10]
return item*2
})
let maparr=arr.map(item=>{ // ["及格","及格","及格","优秀","优秀"]
if(item>3)
return '优秀'
else
return '及格'
})
二、reduce()
多对一
let arr=[1,2,3,4,5];
let result=arr.reduce(function(num,item,index){
console.log(num);
//1 3 6 10 num相当每次两数相加的中间结果,第一次会把数组第一个数给它
console.log(item);
//2 3 4 5 item就是数组中的每个数,由于第一个给num了,所以第二个给它
console.log(index);
//1 2 3 4 项的索引,由于第一次没有前一次的计算,用arr[0]来抵
return num+item;
});