js删除数组内多个相同元素——数组去除重复元素

js删除数组内多个相同元素——数组去除重复元素

1、需求

有数组testArr= [“b”, “d”, “a”, “b”, “c”, 1, 5],需要把数组内的"b"删掉。

2、方法

方法1.1

使用i–,初始值为length-1,这样删除为数组最后开始删除(或通过验证),不影响继续执行的结果。

var testArr = ["b", "d", "a", "b", "c", 1, 5];
//替换掉数组里的b
for (var i = testArr.length - 1; i >= 0; i--) {
    //如果是b,则从数组删掉
    if (testArr[i] === "b")
        testArr.splice(i, 1)
}
console.log(testArr);// testArr= ['d', 'a', 'c', 1, 5]
方法1.2

每次成功执行删除,则把当前的i减1。因为每删除一个元素,后边的依次靠前一个位置。所以把i-1可保证每个元素都不漏掉。

var testArr = ["b", "d", "a", "b", "c", 1, 5];
//替换掉数组里的b
for (var i = 0; i < testArr.length; i++) {
    //如果是b,则从数组删掉
    if (testArr[i] === "b") {
        testArr.splice(i, 1)
        //因为当前元素被删,后边的元素全部往前挪1个位置,i-1保证不漏掉数据
        i -= 1;
    }
}
console.log(testArr);// testArr= ['d', 'a', 'c', 1, 5]
方法2
var testArr = ["b", "d", "a", "b", "c", 1, 5];
var newArr = [];
for (var i = 0; i < testArr.length; i++) {
    if (testArr[i] !== "b") {
        newArr.push(testArr[i]);
    }
}
console.log(newArr);// [ "d", "a",  "c", 1, 5];

版权声明:本文为weixin_44867717原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。