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

 

转载于:https://www.cnblogs.com/mobeisanghai/p/7491404.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值