js 数组问题

m =[{"name":a,"number":1},{"name":a,"number":3}]

怎么求 m[0].number + m[1].number ?


ibeautiful
浏览 407回答 1
1回答

慕仙森

LZ的需求应该是想要对一个数组里面所有元素的某个属性(number)进行求和,通过reduce很优雅就实现出来,如下:const sum = m.reduce((memo, ele) => memo + ele.number, 0)当然也可以通过不断给一个外部变量赋值来达到目的:let sum = 0;m.forEach(ele => {    sum += ele.number})上述是基于函数式编程的实现,通过一般的循环方式实现如下:let sum = 0for(let i in m){    sum += m[i].number}上面所有实现里面,前提是保证每个元素都有这个属性(number),并且这个属性存在,但事实通常会有个别出现一些问题,比如是undefined,这时候就需要特别处理一下:let sum = 0for(let i in m){    let n = m[i].number    sum += _.isNumber(n)?n:0 //_指的是lodash}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript