题:假设有一个数组arr = [1,2,1,3,2,4,5,5,6,7],要求去除其重复元素
方法一:不额外创建数组,在原数组本身中去重
const arr = [1, 2, 1, 3, 2, 4, 5, 5, 6, 7]
for (let i = 1; i < arr.length;) {
//从元素前面搜索是否有重复元素,如果搜索到重复元素则返回值不为-1
if (arr.lastIndexOf(arr[i], i - 1) != -1) {
//删除arr[i],注意删除该元素后,后面的元素会往前移一位,所以有元素被删除时i不加1,以免遗漏相邻重复的元素
arr.splice(i, 1)
}
else i++;//只有未找到与当前元素arr[i]重复的元素时i才自增1
}
console.log(arr)
运行结果
方法二:额外创建一个数组存储去重的数组
const newArr = []
for(let ele of arr){
if(newArr.indexOf(ele) === -1){
//未在newArr中找到重复元素就将其加入到newArr中
newArr.push(ele)
}
}
console.log(newArr)
运行结果