简体   繁体   English

如何从数组对象中添加两个键值并在第一个键中更新?

[英]How to add 2 key values from array object and update in 1st key?

I am having an array of two objects: 我有两个对象的数组:

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

I want to multiply amount * rate and update in amount key. 我想乘以amount * rate并更新amount键。

Expected output: 预期产量:

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

You can simply use .map() : 您可以简单地使用.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; } 

Use Array.prototype.map() : 使用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} }); 

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)

you can use forEach, If you don't want to create a new Array. 如果您不想创建新的数组,则可以使用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) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM