去重
- 第1中方式通过双重for循环去重
-请看一下代码
<script>
let arr = [1, 2, ,3,4,3,2,5,,8,8,8,7,,5,5, 5, 6, 6, 7, 7, 8];
//第一次遍历数组
for (let i = 0; i < arr.length; i++)
//第二次遍历数组,是第一次遍历数组下标的下一个数据
for (let j = i + 1; j < arr.length; j++) {
//判断第一层遍历数据和第二层遍历的数据是否相同
if (arr[i] == arr[j]) {
//如果数据相同则通过splice删除一条相同的数据
arr.splice(i, 1)
//i是第一层遍历的下标,因为上一步删除了一条数据,
//所以下标也需要减一,否则实际下标,要比数组中的数据更多
i--;
j--;
}
}
}
console.log(arr)
</script>
第2中,通过indexof()方法(indexOf()方法如果查询到则返回查询到的第一个结果在数组中的索引,如果查询不到则返回-1)。先创建一个新的空数组用来存储新的去重的数组,然后遍历arr数组,在遍历过程中,分别判断newArr数组里面是不是有遍历到的arr中的元素,如果没有,直接添加进newArr中,如果已经有了,那么从头到尾遍历一遍,正好达到了去重的目的。
let arr = [2, 8, 5, 0, 5, 2, 6, 7, 2,4,3,4,3,2,4,7,9,7,5]
let newArr = []
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i])
}
}
console.log(newArr)