为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript array.filter 和 reduce

Javascript array.filter 和 reduce

慕娘9325324 2021-11-12 15:53:53
将一组选民对象转换为投票人数的计数 请帮助我我开始学习 javascript 但我对减少和过滤某些人可以解决的问题感到困惑?我运行代码和未定义的@@``    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}];``
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

最好和最短的方法,只需过滤和计数


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


查看完整回答
反对 回复 2021-11-12
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

您可以使用单个 reduce 并将对象的布尔值简单地添加到计数中。


function total(array) {

    return array.reduce(function(count, voter) {

        return count + voter.voted;

    }, 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 }];


console.log(total(voters));


查看完整回答
反对 回复 2021-11-12
  • 2 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号