新增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 循环迭代
比较简单,不说了
var arr = [12, 4, 8, 9]
var result = arr.forEach(item => console.log(item))
var result = arr.forEach((item, index)=>console.log(item, index))