国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript數(shù)組去重

Little_XM / 1647人閱讀

摘要:從嵌套循環(huán)就可以看出,這種方法效率極低。我們可以用一個(gè)的結(jié)構(gòu)記錄已有的元素,這樣就可以避免內(nèi)層循環(huán)。恰好,在中實(shí)現(xiàn)是極為簡(jiǎn)單的,改進(jìn)如下

數(shù)組去重

Array類型并沒有提供去重復(fù)的方法,如果要把數(shù)組的重復(fù)元素干掉,那得自己想辦法:

方法一:ES6方法:
var arr=[2,3,5,4,5,2,2,"5"];
var s=new Set();
arr.map((item,index)=>{
    s.add(item)
})
var temp=[];
for(var i of s){
    temp.push(i)
}
console.log(temp)

得到結(jié)果 [ 2, 3, 5, 4, "5" ]方法很簡(jiǎn)單,不得不說(shuō)es6是大勢(shì)所趨啊,也希望各大瀏覽器廠商趕緊支持起來(lái)!

方法二:利用indexOf方法;
var aa=[1,3,5,4,3,3,1,4]
function arr(arr) {
    var result=[]
    for(var i=0; i
方法三:
function unique(arr) {
    var result = [], isRepeated;
    for (var i = 0, len = arr.length; i < len; i++) {
        isRepeated = false;
        for (var j = 0, len = result.length; j < len; j++) {
            if (arr[i] == result[j]) {   
                isRepeated = true;
                break;
            }
        }
        if (!isRepeated) {
            result.push(arr[i]);
        }
    }
    return result;
}
方法四:

總體思路是把數(shù)組元素逐個(gè)搬運(yùn)到另一個(gè)數(shù)組,搬運(yùn)的過程中檢查這個(gè)元素是否有重復(fù),如果有就直接丟掉。從嵌套循環(huán)就可以看出,這種方法效率極低。我們可以用一個(gè)hashtable的結(jié)構(gòu)記錄已有的元素,這樣就可以避免內(nèi)層循環(huán)。恰好,在Javascript中實(shí)現(xiàn)hashtable是極為簡(jiǎn)單的,改進(jìn)如下:

function unique(arr) {
    var result = [], hash = {};
    for (var i = 0, elem; (elem = arr[i]) != null; i++) {
        if (!hash[elem]) {
            result.push(elem);
            hash[elem] = true;
        }
    }
    return result;
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/109122.html

相關(guān)文章

  • JS專題之數(shù)組去重

    摘要:將元素作為對(duì)象的鍵,默認(rèn)鍵對(duì)應(yīng)的值為如果對(duì)象中沒有這個(gè)鍵,則將這個(gè)元素放入結(jié)果數(shù)組中去。 前言 數(shù)組去重在日常開發(fā)中的使用頻率還是較高的,也是網(wǎng)上隨便一抓一大把的話題,所以,我寫這篇文章目的在于歸納和總結(jié),既然很多人都在提的數(shù)組去重,自己到底了解多少呢。又或者是如果自己在開發(fā)中遇到了去重的需求,自己能想到更好的解決方案嗎。 這次我們來(lái)理一理怎么做數(shù)組去重才能做得最合適,既要考慮兼容性,...

    only_do 評(píng)論0 收藏0
  • JavaScript專題之數(shù)組去重

    摘要:專題系列第三篇,講解各種數(shù)組去重方法,并且跟著寫一個(gè)前言數(shù)組去重方法老生常談,既然是常談,我也來(lái)談?wù)?。它類似于?shù)組,但是成員的值都是唯一的,沒有重復(fù)的值。 JavaScript 專題系列第三篇,講解各種數(shù)組去重方法,并且跟著 underscore 寫一個(gè) unique API 前言 數(shù)組去重方法老生常談,既然是常談,我也來(lái)談?wù)劇?雙層循環(huán) 也許我們首先想到的是使用 indexOf 來(lái)循...

    fsmStudy 評(píng)論0 收藏0
  • JavaScript數(shù)組去重(12種方法,史上最全)

    摘要:數(shù)組去重,一般都是在面試的時(shí)候才會(huì)碰到,一般是要求手寫數(shù)組去重方法的代碼。如果是被提問到,數(shù)組去重的方法有哪些你能答出其中的種,面試官很有可能對(duì)你刮目相看。數(shù)組去重的方法一利用去重中最常用不考慮兼容性,這種去重的方法代碼最少。 數(shù)組去重,一般都是在面試的時(shí)候才會(huì)碰到,一般是要求手寫數(shù)組去重方法的代碼。如果是被提問到,數(shù)組去重的方法有哪些?你能答出其中的10種,面試官很有可能對(duì)你刮目相看...

    rozbo 評(píng)論0 收藏0
  • 也談面試必備問題之 JavaScript 數(shù)組去重

    摘要:而數(shù)組元素去重是基于運(yùn)算符的。而如果有迭代函數(shù),則計(jì)算傳入迭代函數(shù)后的值,對(duì)值去重,調(diào)用方法,而該方法的核心就是調(diào)用方法,和我們上面說(shuō)的方法一異曲同工。 Why underscore (覺得這部分眼熟的可以直接跳到下一段了...) 最近開始看 underscore.js 源碼,并將 underscore.js 源碼解讀 放在了我的 2016 計(jì)劃中。 閱讀一些著名框架類庫(kù)的源碼,就好像...

    Coly 評(píng)論0 收藏0
  • javascript數(shù)組去重

    摘要:數(shù)組去重雙層循環(huán)使用雙層嵌套循環(huán)是最原始的方法用來(lái)存儲(chǔ)結(jié)果如果是唯一的,那么執(zhí)行完循環(huán),等于外層循環(huán)內(nèi)層循環(huán)當(dāng)和相等時(shí),跳出循環(huán)。否則說(shuō)明元素唯一,這時(shí)成立,將此元素添加到中。它類似于數(shù)組,但是成員的值都是唯一的,沒有重復(fù)的值。 JavaScript數(shù)組去重 雙層循環(huán) 使用雙層嵌套循環(huán)是最原始的方法: var array = [a,b,a]; function unique(arra...

    qylost 評(píng)論0 收藏0
  • <javaScript> 數(shù)組去重的方法總結(jié)(2017年)

    摘要:現(xiàn)在要求去重下面這個(gè)數(shù)組測(cè)試重復(fù)重復(fù)方法一測(cè)試重復(fù)重復(fù)去重后測(cè)試重復(fù)是新加的集合集合中的值不會(huì)重復(fù)。歡迎大家一起討論提出新的去重方法。有任何錯(cuò)誤請(qǐng)?jiān)谠u(píng)論指出。 現(xiàn)在要求去重下面這個(gè)數(shù)組 [1, 2, 3, 3, 3, 0, 1, 2, 測(cè)試, 重復(fù), 重復(fù), NaN, NaN, false, false]; 方法一:ES6 Set() let arr = [1, 2, 3, 3, 3,...

    hightopo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<