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>