数组去重复是一个常见的需求,我们暂时考虑同类型的数组去重复。主要是学习编程思想,方法一是一个非常巧妙的算法。
方法一:
非常巧妙
<script>
arr=[1,2,4,5,1,2,8,7]
var n = [],r=[];
for(var i = 0; i < arr.length; i++){
if (!n[arr[i]]){
//n[arr[i]],arr[i]的值分别为1,2,4,5,1,2,8,7,那么n[arr[i]]即n[1],n[2],n[4],n[5],n[1],n[2],n[8],n[7],初始均为undifined,push的同时设为true
n[arr[i]] = true;
r.push(arr[i]);
}
}
alert(r)
</script>
方法二:
很常用,引入一个临时数组
<script>
arr=[1,2,4,5,1,2,8,7]
var n = []; //一个新的临时数组
for(var i = 0; i < arr.length; i++) //遍历当前数组
{
//如果当前数组的第i已经保存进了临时数组,那么跳过,
//否则把当前项push到临时数组里面
if (n.indexOf(arr[i]) == -1) n.push(arr[i]);
}
alert(n)
</script>
方法三:
<script>
var arr=[1,2,3,1,2,3,4,5];
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]==arr[j]){
arr.splice(i,1);
i--;
}
}
}
alert(arr);
</script>