使用 2 个字段的附加值创建一个新数组
Creating a new array with added value from 2 fields
大家好,目前我有一个包含一些数据的数组:
const data = [
{car: 'Hyundai', price: '60.00', tax: '5.00', total: 0},
{car: 'Honda', price: '80.00', tax: '7.00', total: 0},
{car: 'Tesla', price: '100.00', tax: '10.00', total: 0},
]
数据集更大。什么是计算总(价格+税)的新数组的最佳方法。不想改变原来的。所以我需要这个回来:
const newData = [
{car: 'Hyundai', price: '60.00', tax: '5.00', total: 65.00},
{car: 'Honda', price: '80.00', tax: '7.00', total: 87.00},
{car: 'Tesla', price: '100.00', tax: '10.00', total: 110.00},
]
我有更多的字段,所以我想知道是否有比我当前的解决方案更有效、更短的代码来完成它,即 forEach 然后在总键上,我只是做 data.price + data.tax.
使用map()
从旧数组创建新数组。使用省略号将新 属性 合并到旧对象的副本中。
const data = [
{car: 'Hyundai', price: '60.00', tax: '5.00', total: 0},
{car: 'Honda', price: '80.00', tax: '7.00', total: 0},
{car: 'Tesla', price: '100.00', tax: '10.00', total: 0},
];
const newData = data.map((car) => ({...car, total: Number(car.price) + Number(car.tax)}));
console.log(newData);
老兄,Array.forEach 非常有效,但您可以创建一个 Array.map() 并预定义一个函数。例如:
function func(car) {
car.total = car.price + car.tax;
}
let newData = data.map(func);
此外,作为代码逻辑的提示,可能需要使用 let 或 var 而不是 const,因为 inflation、价格变化和税收 increase/decrease 是可能的。
大家好,目前我有一个包含一些数据的数组:
const data = [
{car: 'Hyundai', price: '60.00', tax: '5.00', total: 0},
{car: 'Honda', price: '80.00', tax: '7.00', total: 0},
{car: 'Tesla', price: '100.00', tax: '10.00', total: 0},
]
数据集更大。什么是计算总(价格+税)的新数组的最佳方法。不想改变原来的。所以我需要这个回来:
const newData = [
{car: 'Hyundai', price: '60.00', tax: '5.00', total: 65.00},
{car: 'Honda', price: '80.00', tax: '7.00', total: 87.00},
{car: 'Tesla', price: '100.00', tax: '10.00', total: 110.00},
]
我有更多的字段,所以我想知道是否有比我当前的解决方案更有效、更短的代码来完成它,即 forEach 然后在总键上,我只是做 data.price + data.tax.
使用map()
从旧数组创建新数组。使用省略号将新 属性 合并到旧对象的副本中。
const data = [
{car: 'Hyundai', price: '60.00', tax: '5.00', total: 0},
{car: 'Honda', price: '80.00', tax: '7.00', total: 0},
{car: 'Tesla', price: '100.00', tax: '10.00', total: 0},
];
const newData = data.map((car) => ({...car, total: Number(car.price) + Number(car.tax)}));
console.log(newData);
老兄,Array.forEach 非常有效,但您可以创建一个 Array.map() 并预定义一个函数。例如:
function func(car) {
car.total = car.price + car.tax;
}
let newData = data.map(func);
此外,作为代码逻辑的提示,可能需要使用 let 或 var 而不是 const,因为 inflation、价格变化和税收 increase/decrease 是可能的。