js 去掉数组中重复值,不重复的值保留

这里介绍2中方式:
js代码如下

     var   arr=[1,7,3,2,1,4,12,3,"3",3]
    function compare(arr) {
      var result = [], isfl;
      for (var i = 0; i < arr.length; i++) {
          isfl= false;
         for (var j = 0; j < result.length; j++) {
              if (arr[i] ===result[j]) {   
                  isfl = true;
                 break;
              }
         }
         if (!isfl) {
             result.push(arr[i]);
         }
    }
         return result;
 }
 var dw=[];
 dw=compare(arr);
 console.log(dw);
 function compare2(arr) {
    var result = [], hash = {},type="",item;
    for (var i = 0; i<arr.length; i++) {
         item = arr[i];
          type = typeof(item);
        if (!hash[item+type]) {
            result.push(item);
            hash[item+type] = true;
        }
    }
    return result;
}
var  dw2=compare2(arr);
console.log(dw2);

注意:因为存在类型不同所以要用===,而第二种方式中,hash()只比较值,不比较其类型,所以需要单独抽出其类型,一起比较。才能达到所需目的
效果如图显示:

 

posted @ 2017-09-07 19:22  漠北桑海  阅读(2831)  评论(0编辑  收藏  举报