簡體   English   中英

如何創建單個對象的數組 Javascript

[英]How do I create an array of individual objects Javascript

他們都指向同一個 object “bestGamer” 我不希望他們這樣做,我希望數組中的每個單元格都是一個單獨的 object,在他們的道具中具有不同的值。

我想做 static 因為稍后我想傳遞一個數組,我不會在運行時推送不同的值

const bestGamer = {
        "name" : "",
        "points" : 0    
}
arr2 = new Array(2).fill(bestGamer)
console.log("First:",arr2[0])
console.log("Second:",arr2[1]);    
arr2[0].name ="Yossi"
arr2[0].points++
arr2[1].name ="Dima"
arr2[1].points++
console.log("First:",arr2[0]);
console.log("Second:",arr2[1]);
console.log("Orignal Object",bestGamer);

在此處輸入圖像描述

您需要在將其放入 newArray 時創建一個副本, fill(bestGamer)在所有索引上放置相同bestGamer ,因此您最終在所有索引上都有相同的引用

 let bestGamer = { a: 1, b: 2 } let newArr = new Array(2).fill(0).map(v=> ({...bestGamer})) newArr[0].a = 10 console.log(newArr)


您可以使用 Array.from 而不是 new Array

 let bestGamer = { a: 1, b: 2 } let newArr = Array.from({length:2}, () => ({...bestGamer}) ) newArr[0].a = 10 console.log(newArr)

您正在使用bestGamer填充數組,因此它將填充對相同 object 的引用。 您需要為每個元素創建一個新的 object。 一個簡單的方法是將Array.mapObject.assign結合起來:

arr2 = new Array(2).fill(0).map(() => Object.assign({}, bestGamer));

要創建一個包含單個對象的數組,您可以這樣做。

第一步:聲明一個數組

var myArray = [];

第 2 步:添加一個 object 到它

myArray.push[{0, 1, 2, 3}]

現在您的數組有 1 個項目。 這個項目是項目[0]。 項目 [0] 是 object。 它內部有多個值,在本例中為 4。因此要訪問 item[0] 中的第二個項目,您可以擁有 item[0][1]。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM