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

js 数组问题

js 数组问题

ibeautiful 2018-12-11 13:13:22
m =[{"name":a,"number":1},{"name":a,"number":3}]怎么求 m[0].number + m[1].number ?
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

LZ的需求应该是想要对一个数组里面所有元素的某个属性(number)进行求和,通过reduce很优雅就实现出来,如下:


const sum = m.reduce((memo, ele) => memo + ele.number, 0)

当然也可以通过不断给一个外部变量赋值来达到目的:


let sum = 0;

m.forEach(ele => {

    sum += ele.number

})

上述是基于函数式编程的实现,通过一般的循环方式实现如下:


let sum = 0

for(let i in m){

    sum += m[i].number

}

上面所有实现里面,前提是保证每个元素都有这个属性(number),并且这个属性存在,但事实通常会有个别出现一些问题,比如是undefined,这时候就需要特别处理一下:


let sum = 0

for(let i in m){

    let n = m[i].number

    sum += _.isNumber(n)?n:0 //_指的是lodash

}


查看完整回答
反对 回复 2019-01-02
  • 1 回答
  • 0 关注
  • 406 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信