ECMAScript5
1.传统的去重方式
function unique_normol(array) {
var arr = [];
arr.indexOf = function(argu){/*indexOf的实现*/
for(var i = 0;i<this.length;i++){
if (this[i] == argu){
return i;
}
}
return -1;
}
for(var i = 0;i<array.length;i++){
var item = array[i];
if (arr.indexOf(item) == -1){/*遍历arr多遍*/
arr.push(item);
}
}
return arr;
};
2.利用键值对的方式,map思想
function unique_better(array){
var arr = [];
var map = {};
for(var i=0;i<array.length;i++){/*不用遍历多遍结果数组arr*/
if (!map[array[i]]){/*map中键值对,键值唯一*/
arr.push(array[i]);
map[array[i]] = true;
}
}
return arr;
};
3.优化的,indexOf
function unique_best(array) {
var arr = [];
arr[0] = array[0];/*从第二项开始遍历,省去一次遍历*/
for(var i=1;i<array.length;i++){
/*从位置1开始,如果值出现的第一次的位置与目前位置一致,则放入,否则是重复的信息*/
if (array.indexOf(array[i]) == i){
arr.push(array[i]);
}
}
return arr;
}
参考:http://www.cnblogs.com/xfz1987/p/7591233.html