数组去重复的9种方法
1.underscore.js库
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>数组去重方法1</title>
</head>
<body>
//
//
<script src="../JS/underscore.js"></script>
<script>
var arr = [2,4,5,2,4,7,9,1,9,500];
function getUniqueArray(){
var result = _.uniq(arr);
console.log(result);
}
getUniqueArray();
</script>
</body>
</html>
2.ES6中的set的特性法一
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var arr = [2,4,5,2,4,7,9,1,9,500];
function getUniqueArray(){
var result = Array.from(new Set(arr));
console.log(result);
}
getUniqueArray();
</script>
</body>
</html>
3.ES6中的set的特性法二
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var arr = [2,4,5,2,4,7,9,1,9,500];
function getUniqueArray(){
var result = [...new Set(arr)];
console.log(result);
}
getUniqueArray();
</script>
</body>
</html>
4.forEach循环
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var arr = [2,4,5,2,4,7,9,1,9,500];
function getUniqueArray(){
var result = [];
arr.forEach(item =>{
if(result.indexOf(item) == -1){
result.push(item);
}
});
console.log(result);
}
getUniqueArray();
</script>
</body>
</html>
5.ES6中的filter
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var arr = [2,4,5,2,4,7,9,1,9,500];
function getUniqueArray(){
var result = arr.filter((item,index)=>{
return arr.indexOf(item) === index;
});
console.log(result);
}
getUniqueArray();
</script>
</body>
</html>
6.ES6 reduce方法
<!DOCTYPE html>
<html lang="en"><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var arr = [2,4,5,2,4,7,9,1,9,500];
function getUniqueArray(){
var result = arr.reduce((pre,item)=>{
return pre.includes(item) ? pre : [...pre,item]
},[]);
console.log(result);
}
getUniqueArray();
</script>
</body>
7.利用对象的key值不重复
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var arr = [2,4,5,2,4,7,9,1,9,500];
function getUniqueArray(){
var result = {};
arr.forEach((item,index)=>{
result[arr[index]] = 'value';
})
result = Object.keys(result).map(item => ~~item);
console.log(result);
}
getUniqueArray();
</script>
</body>
</html>
8.双for循环
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var arr = [2,4,5,2,4,7,9,1,9,500];
function getUniqueArray(){
var result = [];
for(let i = 0;i < arr.length; i++){
for(let j = i + 1;j < arr.length; j++){
if(arr[i] === arr[j]){
i++;
}
}
result.push(arr[i]);
}
console.log(result);
}
getUniqueArray();
</script>
</body>
</html>
9.利用排序sort
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var arr = [2,4,5,2,4,7,9,1,9,500];
function getUniqueArray(){
var result = [];
var temp = arr.sort();
for (let i = 0; i < temp.length; i++){
if(temp[i] !== temp[i+1]){
result.push(arr[i]);
}
}
console.log(result);
}
getUniqueArray();
</script>
</body>
</html>