Set方法
```html
<!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>Document</title>
</head>
<body>
<script>
var arr = [1, 2, 3, 4, 6, 23, 13, 4, 5, 3, 4, 5, 5, 6, 7, 8, 9, 9, 8];
//set方法
(function getUniqueArray(){
//Array.from()是为了让set之后的值变为数组格式
var result1=Array.from(new Set(arr))
var result2=[...new Set(arr)]
console.log(result1);
console.log(result2);
})()
</script>
</body>
</html>
以上两种方式都能输出去重的字符串,result1如果不加Array.from()输出的就是字符串格式;result2是利用的ES6展开数组语法
indexOf
<!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>Document</title>
</head>
<body>
<script>
var arr = [1, 2, 3, 4, 6, 23, 13, 4, 5, 3, 4, 5, 5, 6, 7, 8, 9, 9, 8];
// indexOf
(function getUniqueArray() {
var result = [];
arr.forEach(item => {
if (result.indexOf(item) == -1)
result.push(item)
})
console.log(result);
}())
</script>
</body>
</html>
forEach() 方法对数组的每个元素执行一次给定的函数。
indexOf() 方法可返回数组中某个指定的元素位置,是首次获取到的值。如果在数组中没找到指定元素则返回 -1。当result数组中没有查到当前item元素时,会返回-1,此时就会把当前item元素添加到result数组里
filter
<!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>Document</title>
</head>
<body>
<script>
var arr = [1, 2, 3, 4, 6, 23, 13, 4, 5, 3, 4, 5, 5, 6, 7, 8, 9, 9, 8];
// filter
(function getUniqueArray(){
var result=arr.filter((item,index)=>{
return arr.indexOf(item)==index
})
console.log(result);
}())
</script>
</body>
</html>
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。