every方法
数组.every()方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
备注: 若收到一个空数组,此方法在任何情况下都会返回 。true
arr = [1,1,0,1,1]
const result = arr.every(item => item) //resut=false
arr2 = [1,1,1,1,1]
const result = arr2.every(item => item) //resut=true
reduce方法
每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
第一次执行回调函数时,不存在“上一次的计算结果”。如果需要回调函数从数组索引为 0 的元素开始执行,则需要传递初始值。否则,数组索引为 0 的元素将被作为初始值 initialValue,迭代器将从第二个元素开始执行(索引为 1 而不是 0)
const arr = [
{id:1, name: '西瓜', state:true, price:10, count:1},
{id:1, name: '榴莲', state:true, price:80, count:2},
{id:1, name: '草莓', state:true, price:20, count:3},
]
arr.filter(item =>item.state).reduce((amt,item)=>{
return amt += item.price * item.count
}, 0)
//简化为
arr.filter(item =>item.state).reduce((amt,item)=> amt += item.price * item.count, 0)