原理:js对象的特性 : 在js对象中 key 是永远不会重复的
- 1 把数组转成一个js的对象
- 2 把数组中的值,变成js对象当中的key
- 3 把这个对象 再还原成数组
// 把数组转成对象
function toObject(arr){
var obj = {}; // 私有的对象
var j;
for(var i=0,j=arr.length;i<j;i++){
obj[arr[i]] = true;
}
return obj;
}
// 把这个对象转成数组
function keys(obj){
var arr = []; // 私有对象
for(var attr in obj){
if(obj.hasOwnProperty(attr)){
arr.push(attr);
}
}
return arr;
}
// 综合的方法,去掉数组中的重复项
function uniq(newArr){
return keys(toObject(newArr));
}