【发布时间】:2022-10-13 22:15:26
【问题描述】:
Backset 是一个数组数组,我试图过滤掉任何包含重复元素的数组,例如一个有 2 个元素的数组。我想从 Backset 数组中删除这些。
然而这并没有发生,backSet 中的一些数组,例如 [1,2,2] 留在 backSet 中。
for(z=0; z<backSet.length; z++){
backSet[z].sort();
tempBackSort = [];
for(k=0; k< backSet[count].length; k++){
if(tempBackSort.includes(backSet[count][k])){
backSet.splice(backSet.indexOf(backSet[count]),1);
kon = 0;
continue;
} else{
tempBackSort.push(backSet[count][k]);
kon = 1;
}
}
if(kon===1){
count++;
}
backSet[z].sort();
}
【问题讨论】:
-
@Ivar我以为我通过使用 kon 变量整理了跳过索引,所以如果没有删除数组,索引只会上升
-
kon 变量没有意义,因为它在循环中什么都不做
-
如果没有minimal reproducible example,就很难完全遵循逻辑。但是有两件事对我来说很突出:从
backSet中删除该项目后,您继续在内部 for 循环中循环。并且您的kon变量会被循环的每次迭代覆盖,因此您实际上只检查最后一个元素。 -
@JaromandaX我添加它的原因是它在删除元素时不会跳过索引
-
@Ivar 继续;删除项目后不跳出for循环?
标签: javascript arrays loops for-loop if-statement