我正在嘗試對一些嵌套的物件陣列進行分組。在我的以下資料中,有一個“產品”關鍵屬性。如果相同,我正在嘗試對產品進行分組vendor.email。在對產品進行分組后,我還想將paymentDetailskey 屬性放在每個組上。
這是我的代碼。我可以對產品進行分組,但無法paymentDetails在每個組上設定鍵和值。
const data= [
{
_id: "622d70a49bd88b1599026318",
products: [
{
_id: "6223186e2278d4e502f5264a",
title: "Product number 1",
price: 600,
cartQuantity: 1,
vendor: {email: "[email protected]"}
},
{
_id: "622d4e9f9bd88b1599026317",
title: "asdas",
price: 100,
cartQuantity: 5,
vendor: {
email: "[email protected]"
}
},
{
_id: "622d4e9f9bd88b1599026317",
title: "asdas",
price: 100,
cartQuantity: 5,
vendor: {
email: "[email protected]"
}
},
],
paymentDetails: {
createdId: 1647145079,
date: "Sun Mar 13 2022",
amount: 700,
email: "[email protected]",
last4: "4242",
transaction: "p"
},
status: "Pending",
billing: {
country: "BD",
name: "Md. Fathe Karim",
phone: " 88010000000",
line1: "Madhabdi",
city: "Narshingdi",
postal_code: "1604",
state: "Bandarban"
}
}]
const mapped = {}; // MY function
data[0].products.forEach(item => {
if (item.vendor.email in mapped) return mapped[item.vendor.email].push(item);
mapped[item.vendor.email] = [item];
});
const expectedFormat = Object.keys(mapped).map(key => {
const o = {};
o["orders"] = mapped[key];
return o;
});
console.log(expectedFormat)
我的預期結果是:
[
{
"orders": [
{
"_id": "6223186e2278d4e502f5264a",
"title": "Product number 1",
"price": 600,
"vendor": {
"email": "[email protected]"
}
}
],
"paymentDetails": {
createdId: 1647145079,
amount: 700,
email: "[email protected]",
}
},
{
"orders": [
{
"_id": "622d4e9f9bd88b1599026317",
"title": "Product number 2",
"price": 100,
"vendor": {
"email": "[email protected]"
}
},
{
"_id": "622d4e9f9bd88b1599026317",
"title": "Product number 3",
"price": 100,
"vendor": {
"email": "[email protected]"
}
}
],
"paymentDetails": {
createdId: 1647145079,
amount: 700,
email: "[email protected]",
}
}
]
uj5u.com熱心網友回復:
expectedFormat.forEach(orders => orders.paymentDetails = data[0].paymentDetails);行得通嗎?我可能是誤會了。
如果您想添加的不僅僅是 paymentDetails 鍵,請在箭頭后添加括號。
expectedFormat.forEach(orders => {
orders.paymentDetails = data[0].paymentDetails;
orders.status = data[0].status;
orders.billing = data[0].billing;
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/443106.html
標籤:javascript 数组 有角度的 目的 减少
