代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 数组去重:新数组
let arr = [1, 1, 1, 1, 2, 3, 4, 5, 3, 2, 3, 4, 5]
// 0
// 1. 定义一个新数组
let newArr = []
// 2. 遍历原数组forEach:取出每个元素
arr.forEach(function (item) {
// 3. 判定:indexOf:不存在就放进去:存在不管
if (newArr.indexOf(item) == -1) {
// 没找到:不可能重复
newArr.push(item)
}
})
console.log(newArr)
// 思路2:原数组上进行操作:删除重复的元素
/* arr = [1, 1, 1, 1, 2, 3, 4, 5, 3, 2, 3, 4, 5]
// 0 1 2 3 4 5 6 7 8 9
// 1. 遍历数组:取出每个元素的值和下标
// arr.forEach(function (item, index) {
// // 2. 拿着自己的值去数组找:找出第一个位置
// if (arr.indexOf(item) != index) {
// // 3. 位置如果 == 自己:不重复,不要管; 位置 != 自己的位置:自己该删除(splice)
// arr.splice(index, 1)
// }
// })
for (let i = 0; i < arr.length; i++) {
// i是自己的下标,arr[i]是自己的元素值
if (arr.indexOf(arr[i]) != i) {
// 删除自己
arr.splice(i, 1)
// 让后面往前挪的元素:需要重新判定,不能跳过
i--
}
} */
function arrTrip(arr) {
for (let i = 0; i < arr.length; i++) {
// i是自己的下标,arr[i]是自己的元素值
if (arr.indexOf(arr[i]) != i) {
// 删除自己
arr.splice(i, 1)
// 让后面往前挪的元素:需要重新判定,不能跳过
i--
}
}
// 返回值
return arr
}
arrTrip(arr)
console.log(arr)
</script>
</body>
</html>