成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js 數(shù)組去重(單元素和對(duì)象數(shù)組)

reclay / 3340人閱讀

摘要:源碼方案,舊方案方案,相比方案一,少了一層循環(huán),提高效率,邏輯更加清晰使用方法

源碼
//方案1,舊方案
Array.prototype.unique = function(key) {
    var arr = this;
    var n = [arr[0]];
    for (var i = 1; i < arr.length; i++) {
        if (key === undefined) {
            if (n.indexOf(arr[i]) == -1) n.push(arr[i]);
        } else {
            inner: {
                var has = false;
                for (var j = 0; j < n.length; j++) {
                    if (arr[i][key]!==undefined && arr[i][key] === n[j][key]) {
                        has = true;
                        break inner;
                    }
                }
            }
            if (!has) {
                n.push(arr[i]);
            }
        }
    }
    return n;
}

//方案2,相比方案一,少了一層循環(huán),提高效率,邏輯更加清晰
Array.prototype.uniqueTree = function(key) {
        var res = [];
        var json = {};
        var arr = this;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i][key]===undefined||json[arr[i][key]]===undefined) {
                res.push(arr[i]);
                json[arr[i][key]] = 1;
            }
        }
        return res;
    };
    
使用方法:
[1,2,3,4,3,2].unique()
//[1,2,3,4]
[{a:1},{a:2},{a:1}].unique("a")
//[{a:1},{a:2}]

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/80548.html

相關(guān)文章

  • JS數(shù)組去重的三種方法

    摘要:編寫雙重循環(huán)去重當(dāng)出現(xiàn)相同的元素時(shí),刪除重復(fù)的元素哈希表形式查詢對(duì)象是否存在當(dāng)前元素屬性借助方法查詢空數(shù)組里面是否已經(jīng)存在這個(gè)值,不存在則推入編寫單元測(cè)試輸出通過來實(shí)現(xiàn)是比較優(yōu)雅的姿勢(shì)。 編寫uniqueArray.js var Unique = { /** * 雙重循環(huán)去重 * @param arr * @returns {*} */ ...

    hikui 評(píng)論0 收藏0
  • 學(xué)習(xí)筆記: JS數(shù)組

    摘要:數(shù)組元素甚至可以是對(duì)象或其它數(shù)組。它執(zhí)行的是淺拷貝,這意味著如果數(shù)組元素是對(duì)象,兩個(gè)數(shù)組都指向相同的對(duì)象,對(duì)新數(shù)組中的對(duì)象修改,會(huì)在舊的數(shù)組的相同對(duì)象中反應(yīng)出來。 JS中的數(shù)組是弱類型的,數(shù)組中可以含有不同類型的元素。數(shù)組元素甚至可以是對(duì)象或其它數(shù)組。JS引擎一般會(huì)優(yōu)化數(shù)組,按索引訪問數(shù)組常常比訪問一般對(duì)象屬性明顯迅速。數(shù)組長度范圍 from 0 to 4,294,967,295(2^...

    archieyang 評(píng)論0 收藏0
  • 面試小結(jié)(二)

    摘要:的用法,申明構(gòu)造函數(shù),返回。構(gòu)造函數(shù)可以調(diào)用來獲取下一個(gè)值,可以構(gòu)造類似于隨機(jī)數(shù)生成器。在構(gòu)造器函數(shù)中,可以暫停然后返回當(dāng)前表達(dá)式的值??偨Y(jié)是為了更好的消滅這些不知道,希望對(duì)大家也有所幫助。 1、function*的用法; function*,申明構(gòu)造函數(shù),返回{value:v,done:true_or_false}。構(gòu)造函數(shù)可以調(diào)用next來獲取下一個(gè)值,可以構(gòu)造類似于隨機(jī)數(shù)生成器。...

    lanffy 評(píng)論0 收藏0
  • 面試小結(jié)(二)

    摘要:的用法,申明構(gòu)造函數(shù),返回。構(gòu)造函數(shù)可以調(diào)用來獲取下一個(gè)值,可以構(gòu)造類似于隨機(jī)數(shù)生成器。在構(gòu)造器函數(shù)中,可以暫停然后返回當(dāng)前表達(dá)式的值??偨Y(jié)是為了更好的消滅這些不知道,希望對(duì)大家也有所幫助。 1、function*的用法; function*,申明構(gòu)造函數(shù),返回{value:v,done:true_or_false}。構(gòu)造函數(shù)可以調(diào)用next來獲取下一個(gè)值,可以構(gòu)造類似于隨機(jī)數(shù)生成器。...

    draveness 評(píng)論0 收藏0
  • 面試小結(jié)(二)

    摘要:的用法,申明構(gòu)造函數(shù),返回。構(gòu)造函數(shù)可以調(diào)用來獲取下一個(gè)值,可以構(gòu)造類似于隨機(jī)數(shù)生成器。在構(gòu)造器函數(shù)中,可以暫停然后返回當(dāng)前表達(dá)式的值??偨Y(jié)是為了更好的消滅這些不知道,希望對(duì)大家也有所幫助。 1、function*的用法; function*,申明構(gòu)造函數(shù),返回{value:v,done:true_or_false}。構(gòu)造函數(shù)可以調(diào)用next來獲取下一個(gè)值,可以構(gòu)造類似于隨機(jī)數(shù)生成器。...

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

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

0條評(píng)論

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