[英]Combining different properties of two different arrays of objects in one array of objects
[英]Combining two objects from two different arrays
我有兩個數組, orders
和cartitems
我想創建一個包含兩個數組信息的singel有效載荷。 使用Axios發布到我的API。
我嘗試映射一個數組(因為我只需要另一個數組中的一項),然后嘗試像這樣將對象添加在一起:
const payload = []
let newArray = []
this.props.cartItems.map((item) => {
let payloadobject = {
productName: item.productname,
amount: item.qty,
price: item.price,
order_id: this.props.cart.id,
}
newArray = appendObjTo(payload, payloadobject);
})
希望newArray
可以保存組合的組合數組。 但是遇到錯誤:
找不到變量:
appendObjTo
如何合並兩個對象? 它們各自位於自己的陣列中
編輯
當前數據結構
catritems
cartItems Array [
Object {
"id": 2,
"price": "6.50",
"productname": "Baco",
"qty": 2,
}
]
命令
orders Array [
Object {
"id": 2,
}
]
期望的輸出
newArray Array [Object {“ id”:2,“ price”:“ 6.50”,“ productname”:“ Baco”,“ qty”:2,2,“ order_id”:1(持有訂單對象的ID),}]
由於appendObjTo
因此您收到錯誤消息。 它不是標准函數,如果您自己定義了它,則可能在另一個作用域中。
可以使用Object.assign
函數( MDN參考 )代替appendObjTo
。 可以這樣使用:
newArray = Object.assign({}, payload, payloadobject);
但是,您的代碼中還有另一個錯誤。 現在,您將每個組合對象分配給newArray
,並在en處將保存最后一個組合對象,而不是數組。
您提供的map
lambda函數應該返回一個新對象,該對象要替換新數組中的輸入對象。 當所有對象都通過map
函數循環時,將返回一個新數組( MDN參考 )。 在您的情況下,可以這樣使用:
const payload = [];
let newArray = this.props.cartItems.map((item) => {
let payloadobject = {
productName: item.productname,
amount: item.qty,
price: item.price,
order_id: this.props.cart.id
};
return Object.assign({ }, payload, payloadobject);
});
這將使newArray
是對象的一個陣列,其中每個對象是整個的組合payload
,和payloadobject
。
希望這可以幫助😊
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.