前端|ES6数组新方法(map,reduce,filter,foreach)

新增4个方法
map 映射 一个对一个 定义数组:

let arr = [12, 5, 8]

map应用初版:
let result = arr.map(function (item) { return item*2 }) console.log(result)//结果:[ 24, 10, 16 ]

简写版本:
let result2 = arr.map(item=>item*2) // 简写 console.log(result2)//结果:[ 24, 10, 16 ]

还可以:
let score = [18, 86, 88, 24] let result3 = score.map(item => item >= 60 ? '及格' : '不及格') console.log(result3)//结果:[ '不及格', '及格', '及格', '不及格' ]

这三个版本主要是领悟一下map+箭头函数的快乐,
这种快乐应该在只有一个值,并且只有一句执行语句的时候拥有
reduce 汇总 一堆出来一个 用于比如,算个总数,算个平均
reduce函数中自带三个值的含义:
·
temp:初值取arr[0],即数组第一项
item:数组中每一项
index:序号,索引号
定义数组:
var arr = [1, 3, 5, 7]

求每项相加总和:
var result = arr.reduce(function (tmp, item, index) { //tmp 上次结果,item当前数,index次数1开始 console.log(tmp, item, index) return tmp + item }) console.log(result) // 输出总和

求平均值:
var result = arr.reduce(function (tmp, item, index) { if (index != arr.length - 1) { // 不是最后一次 return tmp + item // 前期先累加 } else { //如果是最后一次,那么,除以总数求平均值 return (tmp + item)/arr.length } }) console.log(result)// 输出平均值

filter 过滤器 保留为true的 定义数组:
var arr = [12, 4, 8, 9]

直接来简写版本:
var result = arr.filter(item => (item % 3 === 0) ? true : false) console.log(result) // 还能更简单--体会一下思想 var result = arr.filter(item => item % 3 === 0) console.log(result)

var arr = [ { title: '苹果', price: 10 }, { title: '西瓜', price: 20 }, ] var result = arr.filter(json => json.price >= 20) console.log(result)

forEach 循环迭代 【前端|ES6数组新方法(map,reduce,filter,foreach)】比较简单,不说了
var arr = [12, 4, 8, 9] var result = arr.forEach(item => console.log(item)) var result = arr.forEach((item, index)=>console.log(item, index))

    推荐阅读