gpt4 book ai didi

Javascript:具有相同值的对象数组的每个元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:49:39 24 4
gpt4 key购买 nike

我创建了一个包含对象的二维数组,每个对象都有两个变量。

当我打印出那些对象时,我发现每个对象都有相同的值。

如果我更改其中一个对象,其他对象也会更改。

class test{
constructor(x, y){
self.x = x;
self.y = y;
}
print(){
console.log(self.x, self.y);
}
}

arr = new Array(3);

for(let i=0;i<3;i++){
arr[i] = new Array(3);
}

for(let i=0;i<3;i++){
for(let j=0;j<3;j++){
arr[i][j] = new test(i, j);
}
}

for(let i=0;i<3;i++){
for(let j=0;j<3;j++){
arr[i][j].print();
}
}

它只打印九个 2 2。我不知道发生了什么。

即使我尝试过:

arr[1][2] = new test(2, 3);

它打印出九个 2 3。

如果有人帮助我,我将不胜感激。

:P

最佳答案

JavaScript 不是 Python,使用 this,它会工作。

class test{
constructor(x, y){
this.x = x;
this.y = y;
}
print(){
console.log(this.x, this.y);
}
}

arr = new Array(3);

for(let i=0;i<3;i++){
arr[i] = new Array(3);
}

for(let i=0;i<3;i++){
for(let j=0;j<3;j++){
arr[i][j] = new test(i, j);
}
}

for(let i=0;i<3;i++){
for(let j=0;j<3;j++){
arr[i][j].print();
}
}

(幸运的是/不幸的是,你到处都使用了 Window.self )

关于Javascript:具有相同值的对象数组的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55377378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com