欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

JavaScript七個數組去重方法

admin
2024年7月20日 21:24 本文熱度 806

在JavaScript中,去除數組中重復元素的需求十分常見,下面詳細介紹并演示七種不同的去重方法,每種方法都會附帶必要的代碼注釋。

1. 使用ES6的Set結構

Set是一種集合數據結構,它不允許有重復的元素。通過擴展運算符...可以輕松地將Set轉換回數組,從而達到去重的目的。

// 原始數組
const arr = [1988725333231454445522];

// 定義去重函數
function removeDuplicatesWithSet(arr{
    // 創建一個Set,自動去除重復元素
    const uniqueSet = new Set(arr);
    // 使用擴展運算符將Set轉換為數組
    const uniqueArray = [...uniqueSet];
    return uniqueArray;
}

// 調用函數并打印結果
const result = removeDuplicatesWithSet(arr);
console.log(result);

2. 使用filter()方法

filter()方法會創建一個新數組,其結果是通過提供的函數實現數組中的每個元素的篩選。

const arr = ['apple''apps''pear''apple''orange''apps'];

function removeDuplicatesWithFilter(arr{
    // 使用filter方法,只有當元素的索引和元素首次出現的位置相同時,才保留該元素
    return arr.filter((item, index) => arr.indexOf(item) === index);
}

const result = removeDuplicatesWithFilter(arr);
console.log(result);

3. 使用for循環和indexOf()

這種方法遍歷數組,使用indexOf()檢查元素是否已經存在于結果數組中。

const arr = [1988725333231454445522];

function removeDuplicatesWithFor(arr{
    const uniqueArray = []; // 初始化一個空數組用于存放唯一元素
    for (let i = 0; i < arr.length; i++) {
        // 如果元素尚未在uniqueArray中出現,則添加之
        if (uniqueArray.indexOf(arr[i]) === -1) {
            uniqueArray.push(arr[i]);
        }
    }
    return uniqueArray;
}

const result = removeDuplicatesWithFor(arr);
console.log(result);

4. 雙重for循環去重

盡管這種方法可以工作,但它效率低下,不推薦使用,尤其是對于大型數組。

const arr = [1988725333231454445522];

function removeDuplicatesWithDoubleFor(arr{
    for (let i = 0; i < arr.length; i++) {
        for (let j = i + 1; j < arr.length; j++) {
            // 當找到重復元素時,從數組中移除它
            if (arr[i] === arr[j]) {
                arr.splice(j, 1);
                j--; // 由于splice改變了數組長度,所以需要減一以保持正確的索引
            }
        }
    }
    return arr;
}

const result = removeDuplicatesWithDoubleFor(arr);
console.log(result);

5. 使用indexOf()與新數組

這種方法檢查元素在原始數組中的首次出現位置,如果該位置與當前索引匹配,則添加到新數組中。

const arr = [1988725333231454445522];

function removeDuplicatesWithIndexOf(arr{
    const uniqueArray = [];
    for (let i = 0; i < arr.length; i++) {
        // 只有當元素首次出現時才添加到uniqueArray中
        if (arr.indexOf(arr[i]) === i) {
            uniqueArray.push(arr[i]);
        }
    }
    return uniqueArray;
}

const result = removeDuplicatesWithIndexOf(arr);
console.log(result);

6. 使用includes()方法

includes()方法檢查數組中是否存在指定的值,如果存在則返回true,否則返回false

const arr = [1988725333231454445522];

function removeDuplicatesWithIncludes(arr{
    const uniqueArray = [];
    for (let i = 0; i < arr.length; i++) {
        // 如果uniqueArray中不包含當前元素,則添加之
        if (!uniqueArray.includes(arr[i])) {
            uniqueArray.push(arr[i]);
        }
    }
    return uniqueArray;
}

const result = removeDuplicatesWithIncludes(arr);
console.log(result);

7. 使用reduce()方法

reduce()方法對數組中的每個元素執行一個由您提供的reducer函數,將其結果匯總為單個返回值。

const arr = [1988725333231454445522];

function removeDuplicatesWithReduce(arr{
    // reducer函數,檢查acc(累加器)中是否已經包含當前元素,如果沒有,則添加
    return arr.reduce((acc, curr) => {
        if (!acc.includes(curr)) {
            acc.push(curr);
        }
        return acc;
    }, []);
}

const result = removeDuplicatesWithReduce(arr);
console.log(result);

每種方法都有其適用場景和性能特點,選擇最適合的方法取決于具體的項目需求和環境。通常,使用ES6的Setfilter()方法是最佳選擇,因為它們既簡潔又高效。


該文章在 2024/7/22 11:47:20 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved