如何进行数组去重

题目:编写一个数组去重函数。(使用尽量多的方法来实现)
//如输入数组[1,"a",{b:2},{c:3},{b:2},{b:"2"},"1","a"],返回[1,"a",{b:2},{c:3},"1"]
 
function unique(arr) {
    var temp=[];    //存储新数组
    var keys = [];  //存储对象键集合
  for(var i=0; i<arr.length; i++) {
      var a = arr[i];
    if(typeof a !== "object") {
        var idx = temp.indexOf(a)
        if(idx>-1){
            continue;
        }else {
            temp.push(a);
        }
    } else {
        for(var k in a) {
            var idx1 = keys.indexOf(k); 
            if(idx1===-1) {  //如果在keys中还不存在对象
                keys.push(k);  //存储键
                temp.push(a);  //值存储新数组
            }
        }
    }
    
  }
  return temp;
}

 

posted @ 2018-05-02 20:37  echo2016  阅读(275)  评论(0编辑  收藏  举报