【发布时间】:2015-08-22 22:12:03
【问题描述】:
我有数组 x、y 和 z。 在遍历 x 时,根据条件我需要继续从 z 中删除元素。这是我想要做的:
var x = ["test0", "test1", "test2"];
var y = ["test0", "test1", "test2"];
var z = ["test0", "test1", "test2"];
function myFunction(){
for (var i=0; i<x.length; i++){
for (var j=0; j<y.length; j++){
if(x[i] == y[j]){
z.splice(i,1);
}
}
}
document.getElementById("demo").innerHTML = z;
}
在迭代结束时,z 应该为空。但它总是向我显示剩余的“test1”元素。
由于没有拼接正确的索引,我尝试做z.splice(i--,1),但这也不起作用。
请告知解决此问题的最佳方法是什么?
【问题讨论】:
-
只需像这样更新您的拼接方法参数:z.splice(0,1);它应该工作
-
@AliBaig 这只适用于这个测试用例。张贴者试图删除与其他数组匹配的索引,但这并不总是索引
0。如果他们想删除所有元素,将变量分配给一个新的空数组会更容易。
标签: javascript arrays array-splice