分配给多维数组 javascript

Assigning to multidimensional arrays javascript

本文关键字:数组 javascript 分配      更新时间:2023-09-26

我在对象中充满了假值。

var drumOn = {}, bassOn = {}, synthOn = {}, keysOn = {};
var fal = [];    
for(var j=0; j<16; j++){
  fal.push(false);
}
for(var j=0; j<0; j++){
  drumOn['s'+j] = (fal);
  bassOn['s'+j] = (fal);
  synthOn['s'+j] = (fal);
  keysOn['s'+j] = (fal);
}

然后后来我尝试向一个数组添加一个 true 值

drumOn['s'+ 0][0] = true;

这会为 drumOn 和其他对象中所有数组的第一个元素添加一个 true 值。

我对这些对象所做的唯一一件事就是检查

    if(bassOn['s' + i][j])

用数组中的数组执行此操作,我遇到了同样的问题。

这太疯狂了,我已经尝试了很多东西,但没有意义。

在 JavaScript 中按值复制数组

for(var j=0; j<0; j++){
  drumOn['s'+j] = fal.slice();
  bassOn['s'+j] = fal.slice();
  synthOn['s'+j] = fal.slice();
  keysOn['s'+j] = fal.slice();
}

slice返回数组的副本。 在您的示例中,所有项目都指向同一个原始数组fal。 你需要复制它。