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()只比较值,不比较其类型,所以需要单独抽出其类型,一起比较。才能达到所需目的
效果如图显示:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM