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
}
添加回答
举报
0/150
提交
取消