Вот мой объект:
var obj = {
"idtransact1": {
"amount": 3000,
},
"idtransact2": {
"amount": 3000,
}
}
Я пытаюсь получить сумму всей суммы. Я попытался адаптировать этот пример, но так как это не та же структура данных, я немного растерялся.
var array = [{
"adults": 2,
"children": 3
}, {
"adults": 2,
"children": 1
}];
var val = array.reduce(function(previousValue, currentValue) {
return {
adults: previousValue.adults + currentValue.adults,
children: previousValue.children + currentValue.children
}
});
console.log(val);
Любая помощь будет оценена.
Вы можете использовать Object.values()
и .reduce()
чтобы получить сумму:
const data = {
"idtransact1": { "amount": 3000 },
"idtransact2": { "amount": 3000 }
};
const result = Object.values(data).reduce((r, { amount }) => r + amount, 0);
console.log(result);
Использование цикла forEach
var obj = {
"idtransact1": {
"amount": 3000,
},
"idtransact2": {
"amount": 3000,
}
}
var sum=0;
Object.values(obj).forEach((x)=>sum+=x.amount)
console.log(sum)
Цикл for in - ваш друг, когда дело доходит до поиска значений в объекте.
var obj = {
"idtransact1": {"amount": 3000},
"idtransact2": {"amount": 3000}};
var sumAmount = 0;
for(var char in obj){
sumAmount += obj[char].amount;
}
console.log(sumAmount);
Для вашего второго примера цикл for in работает аналогично массиву объектов.
var array = [
{"adults": 2,"children": 3},
{"adults": 2,"children": 1}];
var sumAdults = 0;
var sumChildren = 0;
for(var char in array){
sumAdults += array[char].adults;
sumChildren += array[char].children;
}
console.log(sumAdults + " " + sumChildren);
Меньше помнить, если вы можете искать данные в объектах и данные в массиве объектов одинаково. наслаждаться
Object.values(obj)
чтобы сначала превратить его в массив.