所以,我有两个包含价格的数组。一个是基本价格,另一个是添加剂
const fees = [{
price: 5,
title: "normal tarif"
}, {
price: 2.5,
title: "coupon"
}];
const extras = [{
price: 2.00,
title: "Extra natchos"
}, {
price: 2.00,
title: "Extra sauce"
}, {
price: 3.00,
title: "Extra spicy"
}];
const combinedArray = fees.map((x, i) => [x.price, x.price + extras[i].price]);
console.log(combinedArray);
现在,我需要将它们重新映射到一个新的数组,它会将它们的价格加在一起,但是,我现有的代码只能达到第一个数组中元素的数量。
如何制作它以便它将映射第二个数组中的所有元素?
答案 0 :(得分:3)
您可以添加给定数组的所有价格,并返回一个新数组,其中包含每个数组的总和。
var fees = [{ price: 5, title: "normal tarif" }, { price: 2.5, title: "coupon" }],
extras = [{ price: 2.00, title: "Extra natchos" }, { price: 2.00, title: "Extra sauce" }, { price: 3.00, title: "Extra spicy" }],
prices = [fees, extras]
.map(a => a
.map(({ price }) => price)
.reduce((a, b) => a + b, 0));
console.log(prices);
答案 1 :(得分:0)
要将两个数组合并为一个,您需要更多操作。这是示例代码:
const fees = [{
price: 5,
title: "normal tarif"
}, {
price: 2.5,
title: "coupon"
}];
const extras = [{
price: 2.00,
title: "Extra natchos"
}, {
price: 2.00,
title: "Extra sauce"
}, {
price: 3.00,
title: "Extra spicy"
}];
const combinedArray = [].concat(...fees.map(fee => extras.map(extra => fee.price + extra.price)));
console.log(combinedArray);
内部部件通过将每个fee
映射到fee
和extra
的数组来创建二维数组,[].concat(...array2D)
部分将其转换为一维阵列。