数组去重方法总结
- 方法1:push和pop方法结合双层for循环嵌套
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数组去重</title>
</head>
<body>
<script>
//定义一个数组
var arr=[1,2,3,3,2,6,9,5,4,5,9,34];
//新数组用来存放
var newArr=[];
//for循环遍历当前数组
for(var i=0;i<arr.length;i++){
newArr.push(arr[i]);
for(var j=0;j<=i;j++){
if(arr[i]==arr[j]&&i!=j){
newArr.pop(arr[i]);
}
}
}
console.log(arr);
console.log(newArr)
</script>
</body>
</html>
- 方法2:sort()方法结合for循环,push()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>方法2</title>
</head>
<body>
<script>
//定义一个数组
var arr=[1,2,3,3,2,6,9,5,4,5,9,34];
//新数组用来存放
var newArr=[];
console.log("最开始的数组:"+arr);
arr.sort();
console.log("排序后的数组:"+arr);
for(var i=0;i<arr.length;i++){
if(arr[i-1]!=arr[i]){
newArr.push(arr[i]);
}
}
console.log("去重之后的数组:"+newArr);
</script>
</body>
</html>
- 方法3:indexOf()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>方法3</title>
<!--indexOf-->
</head>
<body>
<script>
//定义一个数组
var arr=[1,2,3,3,2,6,9,5,4,5,9,34];
//新数组用来存放
var newArr=[];
console.log(arr);
for(var i=0;i<arr.length;i++){
//判断当前元素在数组中第一次出现,就把当前元素插入新数组
// if(newArr.indexOf(arr[i])===-1){
// newArr.push(arr[i])
// }
//判断当前元素在数组中第一次出现,就把当前元素插入新数组----2
if(arr.indexOf(arr[i])===i){
newArr.push(arr[i])
}
}
console.log(newArr);
</script>
</body>
</html>
- 方法4:.lastIndexOf()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>方法4</title>
<!--lastIndexOf-->
</head>
<body>
<script>
//定义一个数组
var arr=[1,2,3,3,2,6,9,5,4,5,9,34];
//新数组用来存放
var newArr=[];
console.log(arr);
for(var i=0;i<arr.length;i++){
newArr.lastIndexOf(arr[i])!==-1?'':newArr.push(arr[i]);
}
console.log(newArr);
</script>
</body>
</html>
方法5:splice()
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>方法5</title>
</head>
<body>
<script>
//定义一个数组
var arr=[1,2,3,3,2,6,9,5,4,5,9,34];
console.log(arr);
//新数组用来存放
console.log(arr);
var newArr=[];
var len=arr.length;
for(var i=0;i<len;i++){
for(j=i+1;j<len;j++){
if(arr[i]==arr[j]){
arr.splice(j,1);
len--;
j--;
}
}
}
</script>
</body>
</html>
未完待续…