const num=[10,20,30,78,111,456]
//要筛选出数组中小于100的元素
//注意 回调参数里面的n代表原数组里面的元素 每个元素依次进行判断
//比较结果为true时 Vue会将其加入一个新的数组 否则将这个元素过滤掉
let newNum=num.filter(function (n) {
return n<100
})
console.log(num) //原数组 [10, 20, 30, 78, 111, 456]
console.log(newNum); //新数组 [10, 20, 30, 78]
例如:对上面过滤后的数组进行每个元素都变为自己的2倍的处理
//原数组为 [10, 20, 30, 78]
let new2Num = newNum.map(function (n) {
return n * 2
})
console.log(new2Num); //[20, 40, 60, 156]
/*这里的n还是原数组中的元素 preValue是上一次函数回调所返回的值
可以知道这里的reduce共执行的次数跟原数组的次数等同,这里第一次执行回调函数functionpreValue为初始值0
经过执行preValue+n后将新的值返回给preValue 如此执行 reduce才能完成数组的累加操作*/
//原数组为[20, 40, 60, 156]
let new3Num = new2Num.reduce(function (preValue, n) {
return preValue + n
}, 0)
//没有初始值initialValue(即上面一行中的0,当数组为空时,会抛出异常提示reduce没有初始值,所以为兼容性一般加上initialValue作为初始值)
console.log(new3Num); //276
原文:https://www.cnblogs.com/gesh-code/p/14128868.html