亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

reclay / 3389人閱讀

摘要:源碼方案,舊方案方案,相比方案一,少了一層循環(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/80548.html

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    macg0406 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<