所以我目前有一个多维数组,其中包含由函数创建的大量数组,在此结构中
0: Array[10]
0: Array[5]
1: Array[5]
2: Array[5]
3: Array[5]
4: Array[5]
5: Array[5]
6: Array[5]
7: Array[5]
8: 335.74
9: 10341
1: Array[10]
2: Array[10]
3: Array[10]
.... and so on.
因为创建这个数组的函数是一个计算其中 8 个数组的所有可能组合的函数(最后 2 个数组是在后面附加的),所以这个数组非常长,所以我想过滤掉其中的一些。在这里,我尝试删除最后一个元素上的值高于 10000 的所有数组(如果它确实删除了整个数组)。
for (i = 0; i < comb.length; ++i) {
if (comb[i][9] > 10000) {
comb.splice([i],1);
}
}
因此在第一个示例中,点编号为: 9 高于 10000,因此应该拼接/删除其父级。 目前这只是删除数组的一部分或根本不删除任何内容..
有什么想法吗?谢谢:)
最佳答案
在你的代码中
for (i = 0; i < comb.length; ++i) {
if (comb[i][9] > 10000) {
comb.splice([i],1);
}
}
删除一个元素并将计数器加一。例如,您删除元素 5,计数器上升到 6,访问的元素现在为 7,并且不处理第 6 个元素。
5 counter i
0 1 2 3 4 5 6 7 8 9 array elements
5 delete element
0 1 2 3 4 6 7 8 9 array elements
6 counter i
0 1 2 3 4 6 7 8 9 array elements
因此,具有固定间隔的 for
循环在这里不起作用。
就用while,只有不拼接的时候才增加。
var i = comb.length;
while (i--) {
if (comb[i][9] > 10000) {
comb.splice(i, 1);
}
}
关于javascript - 如何从 JavaScript 中的多维数组中删除数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32655420/