arr.reduce(function(prev,cur,index,arr){
...
}, init);
arr 表示原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
init 表示初始值。
例如:
const count=computed(()=>{
return props.todos.reduce(
(pre,todo,index)=>pre+(todo.isCompleted?1:0),
0
)
})
累和:
var total = [0, 1, 2, 3].reduce((acc, cur) => {
return acc + cur
}, 0);
console.log(total) // 6
数组去重:
let arr = [1, 2, 2, 2, 3, 5, 4]
let a=arr.reduce((result, item) => {
if (result.indexOf(item) < 0) {
result.push(item)
}
return result
}, [])
console.log(a);
找到数组中没一项出现的次数
let names = ['tom', 'jim', 'jack', 'tom', 'jack'];
const countNames = names.reduce((allNames, name) => {
if (name in allNames) {
allNames[name] ++;
}
else {
allNames[name] = 1;
}
return allNames;
}, {});
console.log(countNames) // { tom: 2, jim: 1, jack: 2 }