方式1:使用shift()获取并删除删除数组的第一个元素,判断这个元素是否还存在于数组中,如果存在则说明这个元素的是重复的;如果不存在,进行push()操作
function unique(a){
if(Array.isArray(a)){
var len = a.length,item;
while(len--){
item = a.shift();
if(a.indexOf(item) === -1){
a.push(item);
}
}
}
return a;
}
方式2:建立一个哈希表,通过对象属性查询去除重复元素
function unique(array){
var hash = {},
len = array.length,
result = [],
i;
for(i = 0; i < len; i++){
if(!hash[a[i]]){
hash[a[i]] = true;
result.push(a[i]);
}
}
return result;
}
方式3:思路和方式2类似,但是简洁很多
function unique(arr) {
var hash = {};
return arr.filter(function (n) {
hash[n] = (hash[n] || 0);
return (++hash[n] <= 1);
});
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。