Javascript array.filter和reduce
将选民对象数组转换为投票人数的计数 请帮助我开始学习javascript,但我对reduce和filter很困惑,有人能解决吗?我运行代码,但未定义@@``Javascript array.filter和reduce,javascript,arrays,dictionary,filter,reduce,Javascript,Arrays,Dictionary,Filter,Reduce,将选民对象数组转换为投票人数的计数 请帮助我开始学习javascript,但我对reduce和filter很困惑,有人能解决吗?我运行代码,但未定义@@`` function total(arr) { let result = arr.filter(function(votes){ return votes !==true; }).reduce(function(item,cur){ return [(+item),+(+cur)]; },[0]);} var v
function total(arr) {
let result = arr.filter(function(votes){
return votes !==true;
}).reduce(function(item,cur){
return [(+item),+(+cur)];
},[0]);}
var voters = [
{name:'Bob' , age: 30, voted: true},
{name:'Jake' , age: 32, voted: true},
{name:'Kate' , age: 25, voted: false},
{name:'Sam' , age: 20, voted: false},
{name:'Phil' , age: 21, voted: true},
{name:'Ed' , age:55, voted:true},
{name:'Tami' , age: 54, voted:true},
{name:'Mary', age: 31, voted: false},
{name:'Becky', age: 43, voted: false},
{name:'Joey', age: 41, voted: true},
{name:'Jeff', age: 30, voted: true},
{name:'Zack', age: 19, voted: false}
];``
您可以使用单个reduce并将对象的布尔值简单地添加到计数中
函数总数(数组){
返回数组.reduce(函数(计数、表决器){
返回计数+选民投票数;
}, 0);
}
var选民=[{姓名:'Bob',年龄:30,投票:true},{姓名:'Jake',年龄:32,投票:true},{姓名:'Kate',年龄:25,投票:false},{姓名:'Sam',年龄:20,投票:false},{姓名:'Phil',年龄:21,投票:true},{姓名:'Ed年龄:55,投票:true},{姓名:'Tami',年龄:54,投票:true},{姓名:'Mary',年龄:31,投票:false},{姓名:'Becky',年龄:43,投票:false},{姓名:'Joey',年龄:41,投票:true},{姓名:'Jeff',年龄:30,投票:true},{姓名:'Zack',年龄:19,投票:false};
log(总数(投票者));
最好也是最短的方法就是过滤和计数
let voters = [
{name:'Bob' , age: 30, voted: true},
{name:'Jake' , age: 32, voted: true},
{name:'Kate' , age: 25, voted: false},
{name:'Sam' , age: 20, voted: false},
{name:'Phil' , age: 21, voted: true},
{name:'Ed' , age:55, voted:true},
{name:'Tami' , age: 54, voted:true},
{name:'Mary', age: 31, voted: false},
{name:'Becky', age: 43, voted: false},
{name:'Joey', age: 41, voted: true},
{name:'Jeff', age: 30, voted: true},
{name:'Zack', age: 19, voted: false}
];
voters.filter(person => person.voted).length
投票者。筛选(x=>x.voted)。长度
谢谢大家,我刚刚做了:D