对象相同的属性值相加

Array(3)
0:Building:'A'

count:252

1:Building:'B'

count:15

2:Building:'C'

count:30

求这3个数组count的总和

阅读 2.4k
5 个回答
const rows = [{count: 1},{count: 2},{count: 3}];
function foo(arr, key) {
    const sum = (i) => i === 0 ? arr[i][key] : arr[i][key] + sum(i - 1);
    return sum(arr.length - 1);
}
foo(rows, 'count');

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

let arr = [
    {Building: 'A', count: 252},
    {Building: 'B', count: 15},
    {Building: 'C', count: 30},
]
function add(array,key,init=0){
    //init 初始值 用来判断是字符串还是数字  默认是数字:0  字符串:''
    let count = array.reduce((num, item) => num + item[key], init);
    return count;
}
add(arr,'count',0) // 297
add(arr,'Building','')// 'ABC'

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

const  a = [{count:100},{count:100},{count:100}];
function b(item,key){
    let i;
    for(i=0;i<a.length;i++){        
        let sum = 0;
        sum = item[i][key]+sum;
    }
    return sum;
}
const total = b(a,'count')

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题