Javascript JS拼接阵列

Javascript JS拼接阵列,javascript,arrays,splice,Javascript,Arrays,Splice,我想拼接我的数组,所以我创建了以下代码片段: System.log(finalcluster.length); for (i=0; i <= finalcluster.length; i++){ if (finalcluster[i] != undefined ){ System.log(finalcluster[i][0]); var remove = finalcluster.indexOf("dump"); if (finalc

我想拼接我的数组,所以我创建了以下代码片段:

System.log(finalcluster.length);
for (i=0; i <= finalcluster.length; i++){
    if (finalcluster[i] != undefined ){
        System.log(finalcluster[i][0]);
        var remove = finalcluster.indexOf("dump");
        if (finalcluster[i][0] == "dump")
        {
            System.log("couse dump");
            finalcluster.splice(remove,1);
        }
        else {
            System.log("No Problem");
        }
    }
}

这就是阵列模型

如果不拼接,则需要增加i,或者拼接并减小i。从现在起,您正在进行拼接和增量,这将跳过您的背对背转储

为了更好地解释它,你说dump位于索引1和2。如果你在1处拼接,在索引2处的东西现在在索引1处,但你让我看一下索引2

System.log(finalcluster.length);
    for (i=0; i <= finalcluster.length;){
        if (finalcluster[i] != undefined ){
            System.log(finalcluster[i][0]);
            var remove = finalcluster.indexOf("dump");

            if (finalcluster[i][0] == "dump"){
                System.log("couse dump");
                finalcluster.splice(remove,1);

            }else {
                System.log("No Problem");
                i++;
            }
        }
    }
System.log(finalcluster.length);

对于(i=0;i代码的一个问题是,在更改(递减)时,使用
finalcluster.length
以升序迭代
finalcluster
数组的长度。因此,每次满足移除条件时,循环运行的次数将减少1,这使得数组的尾部无法访问。例如:

//这似乎会清空数组
设arr=[1,2,3,4]
for(设i=0;iconsole.log(arr);//[2,4]
拼接会更改数组的位置。因此,当您进行迭代时,只要将元素拼接出来,索引就会跳转索引。请尝试简单地使用
finalCluster=finalCluster.filter(cluster=>cluster[0]!==“dump”)
也许你可以展示一个实际数组的例子,而不是psuedo代码版本,因为你不清楚你的意思。这里是make array函数,在几行之后,我把finalcluster[1][0]=“school”;finalcluster[1][1]=1放在其中。这是我想筛选finalcluster=new array(5)的关键(i=0;iSystem.log(finalcluster.length); for (i=0; i <= finalcluster.length;){ if (finalcluster[i] != undefined ){ System.log(finalcluster[i][0]); var remove = finalcluster.indexOf("dump"); if (finalcluster[i][0] == "dump"){ System.log("couse dump"); finalcluster.splice(remove,1); }else { System.log("No Problem"); i++; } } }