Как добавить 2 значения ключа из массива объекта и обновить в 1-м ключе? - PullRequest
0 голосов
/ 20 марта 2019

У меня есть массив из двух объектов:

let abc = [
  {amount: 1000, rate: 4},
  {amount: 100,  rate: 2},
  {amount: 700,  rate: 1}
];

Я хочу умножить amount * rate и обновить в ключе amount.

Ожидаемый результат:

let output = [
  {amount: 4000, rate: 4},
  {amount: 200,  rate: 2},
  {amount: 700,  rate: 1}
];

Ответы [ 4 ]

4 голосов
/ 20 марта 2019

Вы можете просто использовать .map():

let data = [{amount: 1000, rate: 4}, {amount: 100, rate: 2},{amount: 700, rate: 1}];

let result = data.map(o => ({...o, amount: o.amount * o.rate}));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 20 марта 2019

вы можете использовать forEach, если вы не хотите создавать новый массив.

let abc = [
  {amount: 1000, rate: 4},
  {amount: 100,  rate: 2},
  {amount: 700,  rate: 1}
];

abc.forEach(item => item.amount = item.amount * item.rate)

console.log(abc)
0 голосов
/ 20 марта 2019
let abc = [{amount: 1000, rate: 4}, {amount: 100, rate: 2},{amount: 700, rate: 1}]
var output = abc.map(field => {
field.amount = field.amount * field.rate
return field
})
console.log(output)
0 голосов
/ 20 марта 2019

Использование Array.prototype.map():

   let abc = [{amount: 1000, rate: 4}, {amount: 100, rate: 2}, {}, {amount: 700, rate: 1}]
   abc.map(x => {
       if(!x.amount || !x.rate){  // account for empty objects
           return x;
       }
       return {...x, amount: x.amount * x.rate}
   });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...