我知道问题的标题似乎有点奇怪,但我正在寻找的答案是关于这个标题。假设我有数组数组,并希望根据另一个数组元素更新它。例如;
数组数组;
var arrayOfArrays = [
[
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
],
[
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
]
]
我有另一个像
这样的数组var elementArray = ["0-7-3","2-10-0","2-11-0","2-12-1"]
是否有任何快捷方式可以根据第二个数组中的元素更新数组数组,例如将第0个数组第3列的更新第7列更新为true。 任何帮助将不胜感激。
答案 0 :(得分:2)
您可以拆分索引并在大型数组上使用它。
var elementArray = ["0-7-3","2-10-0","2-11-0","2-12-1"];
for(var i = 0; i < elementArray.length; i++){
var idx = elementArray[i].split('-');
arrayOfArrays[idx[0]][idx[1]][idx[2]] = true;
}
答案 1 :(得分:1)
我不是第一个答案,而且IrkenInvader几乎完全相同,我的内容中只有一些错误检查,这在您的示例中是必需的。
var arrayOfArrays = [
[
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
],
[
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
[false, false, false, false],
]
];
var elementArray = ["0-7-3", "2-10-0", "2-11-0", "2-12-1"];
for (var i = 0; i < elementArray.length; i++) {
var keys = elementArray[i].split('-');
if (keys.length == 3 &&
typeof arrayOfArrays[keys[0]] != 'undefined' &&
typeof arrayOfArrays[keys[0]][keys[1]] != 'undefined' &&
typeof arrayOfArrays[keys[0]][keys[1]][keys[2]] != 'undefined'
) {
arrayOfArrays[keys[0]][keys[1]][keys[2]] = true;
}
}
console.log(arrayOfArrays);
&#13;
小提琴: https://jsfiddle.net/trex005/kzbq9xL0/1
如果要切换而不是始终将元素更改为true,请更改
arrayOfArrays[keys[0]][keys[1]][keys[2]] = true;
到
arrayOfArrays[keys[0]][keys[1]][keys[2]] = !arrayOfArrays[keys[0]][keys[1]][keys[2]];