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版权协议,转载请附上原文出处链接和本声明。