亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

js之數組去重的方法

標簽:
JavaScript

数组去重?即去除数组中重复的元素...

 

首先第一种方法就是利用set集合的特性实现去重(其实set用法很多,有兴趣的可以多去了解下);

  那什么是set集合呢?set集合是一种新的数据存储格式;

  set语法:new Set()

    参数:一个数组

set集合可以称为史上最快的一种去重方式,如下:

var arr = [1, 2, 3, 4, 5, 5, 4, 3, 2, 1 ];var set = new Set(arr);
console.log(set)

第二种方法则是先封装好一个函数判断数组中是否存在某个值,然后再利用这个原理进行数组去重;代码如下:

复制代码

//判断数组中是否存在某个值function has(arr, n){    var bStop = false;    for(var i in arr){        if(arr[i] == n){
            bStop = true;            break;
        }
    }    return bStop;
}function norepeat2(arr){    var newArr = [];    for(var i in arr){        if(!has(newArr, arr[i])){
            newArr.push(srr[i])
        }
    }    return newArr;
}

复制代码

第三种方法呢,则是利用es5中新增的方法indexOf去重;

  indexOf()作用:判断某个字符是否存在。如果存在,则返回相对应的下标,不存在则返回-1;

  究竟怎么实现呢,相信小可爱们都已经想到了~代码如下:

复制代码

function norepeat3(arr){    //创建好一个新的数组
    var newArr = [];    //循环遍历arr
    for(var i in arr){        //判断新数组,如果不存在arr的第i个,不存在则添加到新数组当中
        if(newArr.indexOf(arr[i]) == -1){
            newArr.push(arr[i])
        }
    }    return newArr
}

复制代码

第四种方法则利用sort排序,创建一个新的数组然后传入原数组的第0个;循环遍历的时候要注意i的初始值从1开始。代码如下:

复制代码

Array.prototype.norepeart4 = function(){    //先排序
    this.sort();    //创建一个新的数组并存入数组的第0个
    var newArr = [this[0]];    //循环遍历传入的数组
    for(var i = 1;i<this.length;i++){        //利用每个新数组中值与传入数组的第i个进行计较,不存在则push到新数组中
        if(newArr[newArr.length-1] != this[i]){
            newArr.push(this[i])
        }
    }    //返回新的数组
    return newArr;
}

复制代码

只有想不到没有写不出!数组去重的方法很多很多,在这里就简单的列举四种。望大家喜欢(嘻嘻)

 

原文出处

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消