我有2个数组,一个披萨细节,另一个是订单状态。 id
字段是什么链接他们。所以在这个例子中,订单有2个辣椒酱和3个玛格丽塔。使用ES6 JavaScript过滤和合并2个数组中的字段?
const pizzaContent = [
{
id: 0,
name: 'Pepperoni',
price: 20,
hot: true,
stockQuantity: 3
},
{
id: 1,
name: 'Margarita',
price: 25,
stockQuantity: 3
},
{
id: 2,
name: 'Hawaiian',
price: 15,
stockQuantity: 0
}
];
const orders = [{
id: 0,
quantity: 2
},{
id: 1,
quantity: 3
}];
我试图创造出具有从orders
数量和pizzaContent
领域的一个新的数组。任何不按顺序的比萨饼都不应该成为这个阵列的一部分。
我已经得到接近下列要求:
const pizzasInOrder = this.props.orders.map(order => {
return (
{
quantity: order.quantity,
pizza: this.props.pizzas.find(pizza => {
return (
order.id === pizza.id
);
})
}
)
});
然而,结果是:
pizzasInOrder = [
{
pizza: {id: 0, name: "Pepperoni", price: 20, hot: true, stockQuantity: 3},
quantity:2
},
{
pizza: {id: 1, name: "Margarita", price: 25, stockQuantity: 3},
quantity:3
}
]
但我需要的是:
pizzasInOrder = [
{
id: 0, name: "Pepperoni", price: 20, hot: true, stockQuantity: 3, quantity: 2
},
{
id: 1, name: "Margarita", price: 25, stockQuantity: 3, quantity: 3
}
]
如果ID始终没有洞匹配,则只是有点二的ID和循环反复使用相同的索引来获取匹配的记录。否则,哈希在ID。 –