:::info 数值去重 ::: 基本逻辑——双重for循环
代码
<!DOCTYPE html>
<html lang="en">
<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> </title>
</head>
<body>
<script>
//数组去重案列
let arr = [1, 3, 5, 8, 3, 4, 5, 6, 4, 6, 7, 2, 3, 0, 4, 5, 7, 8, 6, 1, 4, 5, 6]
//1. 声明一个新数组来接收新数据
let newArr = []
for (let i = 0; i < arr.length; i++) {
let flag = '开' //3.开关的概念,当进入外层循环,flag一直是false
//2.将数组arr里面的所有元素去跟新数组newArr里面的每一个元素进行比较
for (let j = 0; j < newArr.length; j++) {
//4. 如果有一个元素相同了,就表示新数组里面有这个元素
if (arr[i] === newArr[j]) {
flag = '关' //5. 当我们找到一个相同的数之后,就将flag改成true,然后退出当前循环层次的for循环(里层for循环)
break
}
}
//6. 里层循环完成之后,flag还是false的时候,就表示我们没找到相同的元素,即需要把这个元素加入新数组(如果内层的for循环里面的flag='关'成立,则不会执行下面的if语句)
if (flag === '开') {
newArr.push(arr[i])
}
}
console.log(newArr);
</script>
</body>
</html>