JavaScript数组去重
1、原型去重法。通过prototype找到数组的源性对象Array,在数组的原型上添加unique()方法。需要使用的时候使用 点 “ . ” 进行连接。
优点:扩展性比较高,复用性比较高。
缺点:通过给数组对象扩展,新增方法,导致数组结构中有新增了一个方法。此时如果用for-in遍历,需要注意。会有一个unique的方法会当做key和value遍历出来。
解决:使用for循环,条件自己设置。或者在for-in下加一个判断, 判断已有数组中是否包含这个对象元素。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数组查重</title>
<script type="text/javascript">
var arr=["1","2","3","1","4","5","4"];
Array.prototype.unique=function(){
var arr1=[];
for(var i=0; i<this.length; i++){
if(arr1.indexOf(this[i])==-1){
arr1.push(this[i]);
}
}
return arr1;
}
alert(arr.unique().toString());
</script>
</head>
<body>
</body>
</html>