如何在JavaScript中从多维数组中删除数组?

符文

所以我目前有一个多维数组,在此结构中,一个函数内部创建的数组数量非常可笑

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,因此应拼接/删除其父级。当前,这只是删除数组的一部分或什么都没有。

有任何想法吗?谢谢 :)

妮娜·斯科茨(Nina Scholz)

在你的代码中

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章