js-hash去重,hash去重

js中使用hash去重,需要建立在對(duì)象的基礎(chǔ)之上,因?yàn)閷?duì)象的存儲(chǔ)采用的是hash表。
不是自己去寫hash算法 ,js在給對(duì)象添加屬性時(shí)內(nèi)部時(shí)采用了hash算法,因此可以利用這一特性進(jìn)行數(shù)組去重

 /*
     * hash去重:不是自己去寫hash算法  利用對(duì)象屬性的添加內(nèi)部應(yīng)用了hash算法
     *
     * 思路:將元素 作為對(duì)象的屬性進(jìn)行添加 當(dāng)對(duì)象內(nèi)沒(méi)有此屬性時(shí)   將此元素作為屬性添加
     *       否則不添加
     * hash表:線性表+鏈表
     * 功能:無(wú)論查找還是添加都非常快
     */
    arr = [1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, '1', '2'];
    result = [];
    var hash = {};
    //無(wú)法識(shí)別 number1和string1
    for (var i = 0; i < arr.length; i++) {
        if (!hash[arr[i]]) {
            result.push(arr[i]);
            hash[arr[i]] = 200;
        }
    }
    console.log(result);
    console.log( hash);//{1: 200, 2: 200, 3: 200, 4: 200, 5: 200, 6: 200, 7: 200, 8: 200}
    console.log('---------------------------------------------');
    console.log(typeof 1);
    console.log(typeof '1');
    arr = [1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, '1', '2'];
    result = [];
    hash = {};
    var type = '';
    /**
     * 解決無(wú)法識(shí)別字符串和number類型的數(shù)據(jù)
     */
    for (var i = 0; i < arr.length; i++) {
        type = typeof arr[i];
        if (!hash[arr[i]+type]) {
            result.push(arr[i]);
            hash[arr[i]+type] = 200;
        }
    }
    console.log(result);
    console.log(hash);//{1number: 200, 2number: 200, 3number: 200, 4number: 200, 5number: 200, …}

————————————————
版權(quán)聲明:本文為CSDN博主「boonyaxnn」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/boonyaxnn/article/details/89486844

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,667評(píng)論 1 32
  • 1、哈希(Hash) 哈希也是存儲(chǔ)對(duì)象的一個(gè)集合,哈希里面的元素是以"key" => “value”(鍵值對(duì))這樣...
    ibob2012閱讀 1,687評(píng)論 1 0
  • 本系列出于AWeiLoveAndroid的分享,在此感謝,再結(jié)合自身經(jīng)驗(yàn)查漏補(bǔ)缺,完善答案。以成系統(tǒng)。 Java基...
    濟(jì)公大將閱讀 1,620評(píng)論 1 6
  • 面試題一:https://github.com/jimuyouyou/node-interview-questio...
    R_X閱讀 1,775評(píng)論 0 5
  • 轉(zhuǎn)自,強(qiáng)烈建議大家看原文,我最近在做數(shù)字編碼, 我發(fā)現(xiàn)相近的數(shù)據(jù)很難得到相近的編碼。 基于音形碼的中文字符串相似度...
    hi_lan閱讀 4,785評(píng)論 0 0

友情鏈接更多精彩內(nèi)容