私は2つの配列を持っています.1つはピザの詳細、もう1つは注文状態です。 id
フィールドは、それらをリンクするフィールドです。したがって、この例では、注文に2ペパーロニと3マルガリータがあります。2列のフィールドをフィルタリングし、ES6 JavaScriptで結合しますか?
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
からフィールドを持つ新しい配列を作成しようとしています。順序にないピザは、この配列の一部であってはなりません。
私は、次のと密接得ている:
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
}
]
しかし、私は必要なのである:しかし
const pizzasInOrder = this.props.orders.map(order => {
return (
{
quantity: order.quantity,
pizza: this.props.pizzas.find(pizza => {
return (
order.id === pizza.id
);
})
}
)
});
、結果は
pizzasInOrder = [
{
id: 0, name: "Pepperoni", price: 20, hot: true, stockQuantity: 3, quantity: 2
},
{
id: 1, name: "Margarita", price: 25, stockQuantity: 3, quantity: 3
}
]
は、ちょうど一致するレコードを取得するために、同じインデックスを使用してオーバーidとループ上に2つを並べ替えます。それ以外の場合はidでハッシュします。 –