首頁 > web前端 > js教程 > 如何從 JavaScript 陣列中刪除重複值?

如何從 JavaScript 陣列中刪除重複值?

Linda Hamilton
發布: 2024-12-22 12:22:11
原創
995 人瀏覽過

How Can I Remove Duplicate Values from a JavaScript Array?

從 JS 陣列中刪除重複值

JavaScript 陣列中的重複元素是一個常見問題。為了解決這個問題,可以採用各種方法。

Set 和 Spread 語法:

最簡潔的解決方案使用 Set 建構子和 Spread 語法:

uniq = [...new Set(array)];
登入後複製

天真的方法:

為了簡單起見,一種簡單的方法是根據索引過濾元素:

uniqueArray = a.filter(function(item, pos) {
    return a.indexOf(item) == pos;
});
登入後複製

使用雜湊表:

更有效的方法利用雜湊表,使用物件屬性作為鍵:

function uniq(a) {
    var seen = {};
    return a.filter(function(item) {
        return seen.hasOwnProperty(item) ? false : (seen[item] = true);
    });
}
登入後複製

組合方法:

為了處理不同的數組,混合解決方案結合了基元的雜湊表和物件的線性搜尋:

function uniq(a) {
    var prims = {"boolean":{}, "number":{}, "string":{}}, objs = [];

    return a.filter(function(item) {
        var type = typeof item;
        if(type in prims)
            return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true);
        else
            return objs.indexOf(item) >= 0 ? false : objs.push(item);
    });
}
登入後複製

排序與篩選:

過濾前排序提供了另一種選擇,根據相鄰值刪除重複項元素:

function uniq(a) {
    return a.sort().filter(function(item, pos, ary) {
        return !pos || item != ary[pos - 1];
    });
}
登入後複製

自訂比較:

對於唯一比較,可以傳遞回調,並過濾相同的“鍵”:

function uniqBy(a, key) {
    var seen = {};
    return a.filter(function(item) {
        var k = key(item);
        return seen.hasOwnProperty(k) ? false : (seen[k] = true);
    })
}
登入後複製

以上是如何從 JavaScript 陣列中刪除重複值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板