当我尝试在 JavaScript 中设置数组中的值时,所有其他“相邻”值也会发生变化。
var screenData = [];
function init() {
var properties = { "property": "value" }
for( i = 0; i < 35; i++ ) {
var row = [];
for( j = 0; j < 19; j++ ) {
row.push(properties);
}
screenData.push(row);
}
}
init();
screenData[0][0].property = "othervalue";
alert(screenData[0][1].property);
警报将返回 othervalue
,尽管它应该是 value
:(
我刚刚监督了某些事情还是这是一个错误?
如有任何帮助,我们将不胜感激:3
最佳答案
这是因为您引用相同的对象(properties
),因此每次修改property
时,它都会在各处更新。
function init() {
for( i = 0; i < 35; i++ ) {
var row = [];
for( j = 0; j < 19; j++ ) {
row.push({ property: 'value' });
}
screenData.push(row);
}
}
关于Javascript:在数组中设置一个值会将所有其他值设置为该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25826981/