去掉数组中重复的元素
去掉数组中重复的元素
歌颂_大海 发表于5个月前
去掉数组中重复的元素
  • 发表于 5个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

function unique1(arr){
      //i从0开始遍历arr,同时创建空数组result
      for(var i=0,result=[];i<arr.length;i++){
        //j从0开始,遍历result
        for(var j=0;j<result.length;j++){
          //如果result中当前元素等于arr中当前元素
          if(arr[i]==result[j]) break;//退出循环 
        }//(遍历结束)
        //如果j等于result的length
        if(j==result.length)
          //将arr中当前元素,追加到result末尾
          result[result.length]=arr[i];
      }//(遍历结束)
      return result;
    }
function unique2(arr){
 for(var i=0,result=[],hash=[];i<arr.length;i++){
    //如果hash中以arr当前元素作为key的元素是undefined
    if(hash[arr[i]]===undefined){
      //将arr当前元素追加到result结尾
      result[result.length]=arr[i];
      //为hash添加新元素,key为arr当前元素值,value都赋值为true
      hash[arr[i]]=true;
    }
 }
 return result;
}
for(var i=0,arr=[];i<1000000;i++){
      arr[i]=Math.floor(Math.random()*1000);
    }
    console.time("unique1");
    unique1(arr);
    console.timeEnd("unique1");
    console.time("unique2");
    unique2(arr);
    console.timeEnd("unique2");

对两种查找方式进行比较,第二种用时更少

共有 人打赏支持
粉丝 0
博文 1
码字总数 237
×
歌颂_大海
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: