添加两个对象以获取值的总和

时间:2016-05-16 08:38:40

标签: javascript

嘿伙计们我试图从两个不同的对象中得到两个值的总和,但我遇到了问题。 这是我当前的代码:

  var drinks = [
   {
       "person": "Mdu",
       "coffee": 5,
       "tea": 0,
       "water": 3
   },
   {
       "person": "Brenda",
       "coffee": 1,
       "tea": 3,
       "water": 1
   },
   {
       "person": "Lesego",
       "coffee": 0,
       "tea": 4,
       "water": 2
   }
    ];


var orangeSellers = [];

for (var type in drinks) {
    if (drinks[type].hasOwnProperty("coffee")) {
        orangeSellers.push({
            price: drinks[type].coffee
        });
    }
}
console.log(orangeSellers[1]);
当我加入两杯咖啡时,我想要得到6的总和。 非常感谢您的帮助

6 个答案:

答案 0 :(得分:3)

您可以使用Array#reduce

执行此操作

var drinks = [{"person":"Mdu","coffee":5,"tea":0,"water":3},{"person":"Brenda","coffee":1,"tea":3,"water":1},{"person":"Lesego","coffee":0,"tea":4,"water":2}];

var result = drinks.reduce((sum, e) => {
  return sum + e.coffee;
}, 0);

console.log(result)

答案 1 :(得分:1)

您可以拥有total变量,如下所示:



var drinks = [
   {
       "person": "Mdu",
       "coffee": 5,
       "tea": 0,
       "water": 3
   },
   {
       "person": "Brenda",
       "coffee": 1,
       "tea": 3,
       "water": 1
   },
   {
       "person": "Lesego",
       "coffee": 0,
       "tea": 4,
       "water": 2
   }
    ];
var orangeSellers = [];
var total = 0;

for (var type in drinks) {
  if (drinks[type].hasOwnProperty("coffee")) {
    orangeSellers.push({
      price: drinks[type].coffee
    });
    total += drinks[type].coffee;
  }
}

console.log(total);




答案 2 :(得分:1)

检查这个简单的解决方案: 如果你只想获得总和

,则无需推送到另一个对象

http://jsbin.com/?html,js,console,output

答案 3 :(得分:0)

drinks.reduce(function (prev, next) {
  return (prev + next.coffee);
}, 0);

答案 4 :(得分:0)

你走了:

var drinks = [{
  "person": "Mdu",
  "coffee": 5,
  "tea": 0,
  "water": 3
}, {
  "person": "Brenda",
  "coffee": 1,
  "tea": 3,
  "water": 1
}, {
  "person": "Lesego",
  "coffee": 0,
  "tea": 4,
  "water": 2
}];


var orangeSellers = [];

for (var type in drinks) {
  if (drinks[type].hasOwnProperty("coffee")) {
    orangeSellers.push(drinks[type].coffee);
  }
}
console.log(orangeSellers); // [5, 1, 0]
var total = orangeSellers.reduce(function(carry, new_value) {
  return carry + new_value;
});
console.log(total); // 6

DEMO:https://jsfiddle.net/6vtykjg7/

答案 5 :(得分:0)

您可以这样使用:

var drinks = [{
   "person": "Mdu",
   "coffee": 5,
   "tea": 0,
   "water": 3
 }, {
   "person": "Brenda",
   "coffee": 1,
   "tea": 3,
   "water": 1
 }, {
   "person": "Lesego",
   "coffee": 0,
   "tea": 4,
   "water": 2
 }];
 var total = getSum("coffee")

 function getSum(obj_pro){
  var total = 0;
    for (var type in drinks) {
    if (drinks[type].hasOwnProperty(obj_pro)) {
        total += parseInt(drinks[type][obj_pro]) 
    }
  }
  return total;
 }

此代码的优点是您可以获得其他属性的总和

https://jsfiddle.net/84mpy08y/1/