數(shù)組去重的三種方式

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

前兩天面試的時候,面試官出的考題?,F(xiàn)在我來總結(jié)一下,算是慢慢積累吧

1.兩個循環(huán),挨個對比

function uniqueArr(arr) {
        var ret = [],
            length = arr.length;
        for(var i = 0;i < length; i++){
            for(j = i+1; j<length;j++){
                if(arr[i] === arr[j]){
                    j = ++i;
                }
            }
            ret.push(arr[i]);
        }
        return ret;
    }

這種方式應(yīng)該是可以最容易考慮到的,但是數(shù)組過長的話,效率應(yīng)該會變差。

2.先排序然后用一次循環(huán)

function uniqueArr(arr) {
        var sortedArr = arr.sort();
        var results = [];
        for (var i = 0; i < arr.length; i++) {
            if (sortedArr[i + 1] != sortedArr[i]) {
                results.push(sortedArr[i]);
            }
        }
        return results;
    }

排序后用數(shù)組后一位比較前一位,一次循環(huán)就好了,但是破壞了原有數(shù)組的順序。

3.利用對象字面量的key與value關(guān)聯(lián)性,寫起來比較簡單

function uniqueArr(arr) {
        var ret = [],
            json = {},
            length = arr.length;

        for(var i = 0; i < length; i++){
            var val = arr[i];
            if(!json[val]){
                json[val] = 1;
                ret.push(val);
            }
        }

        return ret;
    }

也許這種方法想的時候難想到,但是用起來真的很簡單~

原文地址:<a >Jimliu寫字的地方</a>歡迎來踩

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

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

  • 面試中常用的幾個基本算法整理記錄(二) 無意中看到了面試中的 10 大排序算法總結(jié)原文地址記錄一下,方便查找。 查...
    190CM閱讀 1,884評論 1 12
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,347評論 25 708
  • 點(diǎn)擊上方【關(guān)注】按鈕,就可每期自動接受我們的漫話推送↑↑↑↑ 轉(zhuǎn)載合作或聊天請發(fā)簡信~~~
    慢漫來閱讀 2,226評論 12 61
  • 腦子很亂,不知道自己在敲什么。 敲到哪算哪吧。 一個是昨天來電話有一個面試,我想改時間,那邊說問問領(lǐng)導(dǎo)今天給我回電...
    Brian的遐想空間閱讀 248評論 0 0
  • 債券賬號 XSJ 止盈 -> ZGCB 補(bǔ)入 打新 5W & 債券 20W 自己賬號 SXFJ 止損 其他暫時不動...
    增小懶zz閱讀 231評論 0 0

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