【问题标题】:How to add two object 2d array values in javaScript如何在javaScript中添加两个对象二维数组值
【发布时间】:2020-11-11 17:57:29
【问题描述】:

这是问题

var x = [
   {amount:2,concentration:10},
   {amount:1,concentration:8},
   {amount:6,concentration:15}
];

预期输出:

y = [{amount:9, concentration:33}];

【问题讨论】:

    标签: javascript arrays performance multidimensional-array dom-events


    【解决方案1】:

    您可以使用reduce,其初始值等于数组的第一个元素

    const x = [
        { amount: 2, concentration: 10 },
        { amount: 1, concentration: 8 },
        { amount: 6, concentration: 15 },
    ];
    
    const result = x.reduce((acc, val) => ({
        amount: acc.amount + val.amount,
        concentration: acc.concentration + val.concentration,
    }));
    
    console.log(result);
    
    const y = [result];
    
    console.log(y);

    【讨论】:

      【解决方案2】:

      Ciao,这里是工作示例:

      var x =[
        {amount:2,concentration:10},
        {amount:1,concentration:8},
        {amount:6,concentration:15}
      ];
      
      var result = {};
      result.amount = x.map(item => item.amount).reduce((prev, next) => prev + next);
      result.concentration = x.map(item => item.concentration).reduce((prev, next) => prev + next);
      console.log([result]);

      【讨论】:

        【解决方案3】:

        或者你可以使用简单的for循环

        const x =[
          {amount:2,concentration:10},
          {amount:1,concentration:8},
          {amount:6,concentration:15}
        ];
        
        let y = [{
          amount: 0,
          concentration: 0
        }];
        
        for(let i = 0; i < x.length; i++) {
          y[0].amount += x[i].amount;
          y[0].concentration += x[i].concentration;
        }
        
        console.log(y)

        【讨论】:

          【解决方案4】:

          简单的答案,但对很多人都有用。

          var x =[
              {amount:2,concentration:10},
              {amount:1,concentration:8},
              {amount:6,concentration:15}
          ];
          
          let totalAmount = 0;
          let totalConcentration = 0;
          x.map(xx => {
              totalAmount += xx.amount;
              totalConcentration += xx.concentration;
          });
          console.log({amount: totalAmount, concentration: totalConcentration});
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-01-07
            • 2023-03-23
            • 1970-01-01
            • 1970-01-01
            • 2020-05-14
            • 2014-02-22
            • 2013-01-02
            • 2020-09-07
            相关资源
            最近更新 更多