JS數組去重比較


數組去重復是一個常見的需求,我們暫時考慮同類型的數組去重復。主要是理清思路和考慮執行性能。

for循環刪除后面重復的

var uniqueFor = function(arr) {
    for (var i = 0; i < arr.length - 1; i++) {
        var item = arr[i];
        for(var j = i+1; j < arr.length; j++ ) {
            item === arr[j] && (arr.splice(j, 1), j--);
        }
    };
    return arr;
};

判斷對象屬性

var uniqueObject = function(arr) {
    var v, r = [], o = {};
    for(var i = 0; (v = arr[i]) !== undefined; i++) {
        !o[v] && (r.push(v), o[v] = true);
    }
    return r;
};

數組過濾重復項filter

var uniqueFilter = function(arr) {
    return arr.filter(function(elem, pos, self) {
        // 如果沒有重復項,返回true
        return self.indexOf(elem, pos + 1) === -1;
    });
};

比較執行效率


圖1 chrome瀏覽器


圖2 firefox瀏覽器


圖3 IE10瀏覽器

參考文獻
http://jsperf.com/quchong/5
http://www.nowamagic.net/javascript/js_RemoveRepeatElement.php
http://blog.segmentfault.com/fishenal/1190000000418858


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM