2016-05-16 5 views
-3

эй, ребята, я пытаюсь получить сумму двух значений из двух разных объектов, но у меня проблема. это текущий код, л имеет:добавляя два объекта, чтобы получить сумму значений

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 когда я добавить два сорта кофе. Ваша помощь будет оценена

ответ

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);

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)

0
drinks.reduce(function (prev, next) { 
    return (prev + next.coffee); 
}, 0); 
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/

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/