如何创建单个对象数组 Javascript
How do I create an array of individual objects Javascript
它们都指向同一个对象"bestGamer"我不希望他们那样做,我希望数组中的每个单元格都是一个单独的对象,在它们的属性中具有不同的值。
我想做静态的,因为稍后我想传递一个数组,我不想在运行时推送不同的值
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);
您正在用 bestGamer
填充数组,因此它将填充对同一对象的引用。您需要为每个元素创建一个新对象。一个简单的方法是将 Array.map
与 Object.assign
:
结合起来
arr2 = new Array(2).fill(0).map(() => Object.assign({}, 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
而不是新数组
let bestGamer = { a: 1, b: 2 }
let newArr = Array.from({length:2}, () => ({...bestGamer}) )
newArr[0].a = 10
console.log(newArr)
要创建一个包含单个对象的数组,您可以这样做。
第一步:声明一个数组
var myArray = [];
第 2 步:向其中添加一个对象
myArray.push[{0, 1, 2, 3}]
现在你的数组有 1 个项目。该项目是项目[0]。 Item[0] 是一个对象。它内部有多个值,在本例中为 4。因此要访问 item[0] 中的第二个项目,您可以使用 item[0][1].
它们都指向同一个对象"bestGamer"我不希望他们那样做,我希望数组中的每个单元格都是一个单独的对象,在它们的属性中具有不同的值。
我想做静态的,因为稍后我想传递一个数组,我不想在运行时推送不同的值
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);
您正在用 bestGamer
填充数组,因此它将填充对同一对象的引用。您需要为每个元素创建一个新对象。一个简单的方法是将 Array.map
与 Object.assign
:
arr2 = new Array(2).fill(0).map(() => Object.assign({}, 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
而不是新数组let bestGamer = { a: 1, b: 2 }
let newArr = Array.from({length:2}, () => ({...bestGamer}) )
newArr[0].a = 10
console.log(newArr)
要创建一个包含单个对象的数组,您可以这样做。
第一步:声明一个数组
var myArray = [];
第 2 步:向其中添加一个对象
myArray.push[{0, 1, 2, 3}]
现在你的数组有 1 个项目。该项目是项目[0]。 Item[0] 是一个对象。它内部有多个值,在本例中为 4。因此要访问 item[0] 中的第二个项目,您可以使用 item[0][1].