当我们需要删除数组中具体相同点的多个元素的时候,一般会遍历数组,采用splice方法,但是数组的长度发生变化了,导致不能全部遍历到数组的每个元素。所以,总结归纳几个方法如下:
var arr = [1,2,3,1,1,1,4,1,1,5,7];
第一种思路:
for (var i = arr.length; i>=0; i--) {
if (arr[i] === 1) {
arr.splice(i, 1)
}
}
第二种思路:
for (var i = 0, flag = false; i < arr.length; flag ? i : i++) {
if (arr[i] === 1) {
arr.splice(i, 1);
flag = true;
} else {
flag = false;
}
}
第三种思路:
var array = arr.filter((item) => {
return item !== 1
})