Обращаться json array object

У меня есть следующий json:

[{titulo : "Total", balesia : 1, torre:2, CT:3, HF :6}, {titulo : "Total", balesia : 4, torre:2, CT:5, HF :8} ]

Я нуждаюсь в том, чтобы пробежать это и сложить только тех, у которых есть числовая стоимость, и хранить это в другом объекте.

Как пробегать этот объект json и складывать числовую стоимость хранить результат суммы в другом объекте?

Я не такой хороший в javascript.

2
задан 14.04.2017, 23:54
3 ответа

Ответ, если ты не знаешь тип из информации, что tenes внутри objecto:

    let res = 0;
    let a = [
         {titulo : "Total", balesia : 1, torre:2, CT:3, HF :6}, 
         {titulo : "Total", balesia : 4, torre:2, CT:5, HF :8}
    ];

    /**
     * Ésto lo resuelve
     */
    a.forEach((e)=>{
                     for(var p in e){
                       typeof e[p] == "number" && (res+=e[p]);
                     }
                   }
    );

    console.log("Resultado: " + res);

С этим sГіlo ты складываешь тех, которые nГєmeros, не важно, чтобы переменные были у объекта. Я надеюсь, что он подает тебя! Привет.

4
ответ дан 24.11.2019, 12:36
var tuJSON = [{titulo : "Total", balesia : 1, torre:2, CT:3, HF :6}, {titulo : "Total", balesia : 4, torre:2, CT:5, HF :8} ];
var retorno = 0;
tuJSON.forEach(function(currentValue,index,arr) {
    retorno += currentValue.balesia + currentValue.torre + currentValue.CT + currentValue.HF;
});
console.log(retorno);
2
ответ дан 24.11.2019, 12:36

Ты можешь использовать Array.reduce (), чтобы получать объект

var arr = [
  {
    titulo : "Total", 
    balesia : 1, 
    torre:2, 
    CT:3, 
    HF :6
  }, 
  {
    titulo : "Total", 
    balesia : 4, 
    torre:2, 
    CT:5, 
    HF :8
  } 
]


var res = arr.reduce(function(anterior,actual){
  return {
    balesia: anterior.balesia   + actual.balesia,
    torre: anterior.torre   + actual.torre,
    CT: anterior.CT   + actual.CT,
    HF: anterior.HF   + actual.HF
  }
},{
  balesia:0,
  torre:0,
  CT:0,
  HF:0
})
console.log(res);

Уменьшает взятие два параметра:

  1. Функция, которая берет предыдущую стоимость и настоящую стоимость договоренности
  2. Начальная стоимость (он перемещен в функцию как предыдущая стоимость для первого элемента)

и возврати объект прямо;

После того, как инициализируется Уменьши с объектом со свойствами, который мы хотим, мы можем складывать каждое свойство договоренности и получать новый объект с Вашими свойствами, равными сумме свойств каждого элемента договоренности

Чтобы получать больше информации относительно Reduce

2
ответ дан 24.11.2019, 12:36