数组的高级函数用法(函数式编程)
<1> forEach 遍历每一项 会改变原数组
<2> map 会基于原数组产生新数组 //返回一个新数组,不改变原数组
<3> filter 会基于原数组产生新数组(过滤掉不满足条件的数组项) 返回一个新数组,不改变原数组
<4> reduce 会将多项值合成一个,加法,乘法
<5> some 判断数组中是否有满足条件的值(只要数组中有一项值满足就停止遍历并返回true) //if
<6> every 判断数组中所有是否都满足条件的值(只要数组中有一项值不满足就停止遍历并返回false) //if
<7> (es6) for of
<8> (es6) Object.assign()
<9> (es6) JSON.stringify() 和 JSON.parse()
var arr=[1,2,3,4,5]
arr.forEach((item,index)=>{
console.log(item,index,arr);
// arr[index]++
})
var newArr=arr.map((item,index)=>{
return item*2
})
console.log('newArr',newArr);
var filterArr=arr.filter((item,index)=>{
return item>3
})
console.log('filterArr',filterArr);
var sum=arr.reduce((sum,current,currentindex,array)=>{
console.log(sum,current,currentindex,array);
return sum+current
},10)
var sum2=arr.reduceRight((sum,current,currentindex,array)=>{
console.log(sum,current,currentindex,array);
return sum+current
},10)
console.log('sum',sum);
var someArr=arr.some((item,index)=>{
return item>6 //类似于||运算,有一个成立就成立
})
console.log('someArr',someArr);
var everyArr=arr.every((item,index)=>{
return item>0 //类似于&&运算,有一个不成立就不成立
})
console.log('everyArr',everyArr);