首页 > 建站教程 > JS、jQ、TS >  简单的循环,去除数组或对象中指定的内容正文

简单的循环,去除数组或对象中指定的内容

    今天,我爱模板网要将所有含有某个字符的项,从数组或对象中剔除,但是发现总是剔不干净,如下:
    假设将下面数组中凡是含有“a”的项全去了:
var arr = ['a1','c','a2','a3','a4','a5','a6','b','a7','a8','a9','a10','d'];
for(let i=0; i<arr.length; i++){
    if(arr[i].indexOf('a')  !=  -1){
        arr.splice(i,1);
    }
}
alert(arr);
    得到的结果是:c,a3,a5,b,a8,a10,d

    原因是,当发现重复了,去除了,但是下个循环,不从0开始,导致遗漏了部分,知道怎么回事,就好解决了:
var arr = ['a1','c','a2','a3','a4','a5','a6','b','a7','a8','a9','a10','d'];
for(let i=0; i<arr.length; i++){
    if(arr[i].indexOf('a')  !=  -1){
        arr.splice(i,1);
        i=-1;  //主要发现重复,就让i从-1开始,因为下次循环i++,会将它初始化到0
    }
}
alert(arr);
    上面的结果就是正确的了:c,b,d