所以我目前有一个多维数组,在此结构中,一个函数内部创建的数组数量非常可笑
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);
}
}
因此,在第一个示例中,斑点为nr。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
具有固定间隔的循环在这里不起作用。
只需走一会儿,仅在未拼接时才增加。
var i = comb.length;
while (i--) {
if (comb[i][9] > 10000) {
comb.splice(i, 1);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句