问答

数组对象求和问题

作者:admin 2021-06-08 我要评论

let arr = [ {id: 1, num1: 10, num2: 20, num3: 30}, {id: 2, num1: 10, num2: 20, num3: 30}, {id: 3, num1: 10, num2: 20, num3: 30} ] 想问一下,有什么逼格...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
 let arr = [
    {id: 1, num1: 10, num2: 20, num3: 30},
    {id: 2, num1: 10, num2: 20, num3: 30},
    {id: 3, num1: 10, num2: 20, num3: 30}
  ] 

想问一下,有什么逼格比较高的方法,让每个对象的num1相加, num2相加, num3相加, 然后返回得到3个数。即num1的总和,num2的总和, num3的总和....

###
arr.reduce((p,c) => {
   Object.keys(p).forEach(k=>p[k]+=c[k])
   return p
}, {num1: 0, num2: 0, num3:0})
// {num1: 30, num2: 60, num3: 90}
###
let arr = [
  {id: 1, num1: 10, num2: 20, num3: 30},
  {id: 2, num1: 10, num2: 20, num3: 30},
  {id: 3, num1: 10, num2: 20, num3: 30}
] 

var sum = demo(arr);

// [60,60,60]
console.log(JSON.stringify(sum));

/**
 * 对象求和
 * @param {Array} list
 * @return {Array} 和的集合
 */
function demo (list) {
  return list.map(item => item.num1 + item.num2 + item.num3)
}
###
const result = arr.map(item => {
    return {
        ...item,
        sum: item['num1']+item['num2']+item['num3']
    }
})
###
const result = arr.reduce((sum, item) => {
    const total = item.num1 + item.num2 + item.num3
    sum.push(total)
    return sum
}, [])

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • PHP-fpm怎么实现进程间同步与互斥的?

    PHP-fpm怎么实现进程间同步与互斥的?

  • ts类型问题

    ts类型问题

  • js不带引号的对象格式字符串怎么转为对

    js不带引号的对象格式字符串怎么转为对

  • Number.prototype.toFixed() 四舍五入

    Number.prototype.toFixed() 四舍五入

腾讯云代理商
海外云服务器