我試圖將我的物件陣列推入變數,但我收到的只是陣列中的陣列或單個物件。
myObject = {
id: id,
items: [],
boolean: true,
}
myArray = [{1}, {2}, {3}]
我試過myObject.items.push(myArray[0])了,但這只回傳第一個物件。沒有 0 它的雙陣列。
我想要的是
myObject = {
id: id,
items: [{1}, {2}, {3}],
boolean: true,
}
uj5u.com熱心網友回復:
您在這里要做的是將整個陣列設定為新值,如下所示:
myObject.items = myArray
如果你想采用不可變的方法,那么你可以像這樣復制它:
myObject.items = [...myArray]
編輯:
如果您想添加專案(而不僅僅是完全覆寫),myObject.items那么您應該這樣做:
myObject.items = [...myObject.items, ...myArray]
這會將您的新陣列項添加到當前項陣列的末尾,您也可以這樣做將它們添加到開頭:
myObject.items = [...myArray, ...myObject.items]
uj5u.com熱心網友回復:
你可以用這個
myObject.items.push(...myArray)
uj5u.com熱心網友回復:
正如 Andreas 所說,另一個解決方案是使用 concat。Concat 類似于push. 但它實際上并沒有改變它回傳一個新的陣列。
const x = []
console.log(x.concat(3)) // prints [3]
console.log(x) // prints []
這種行為通常是需要的,因為它可以防止發生“副作用”
它也不只是將專案附加到陣列,它僅在專案不是陣列時才這樣做。如果它是一個陣列,它將合并兩個陣列
const x = [1,2,3]
console.log(x.concat([4,5,6]) // prints [1,2,3,4,5,6]
所以這里的解決方案是
myObject.items = myObject.items.concat(myArray)
uj5u.com熱心網友回復:
//object
myObject={
id:1,
items:[],
boolean: true
}
//concat
myArray = [ 1,2,3];
myObject.items = myArray;
console.log(myObject.items);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/464222.html
標籤:javascript 数组 反应 angularjs
