Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengeluarkan Nilai Duplikat daripada Tatasusunan JavaScript?

Bagaimana untuk Mengeluarkan Nilai Duplikat daripada Tatasusunan JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-12-19 19:03:101006semak imbas

How to Remove Duplicate Values from a JavaScript Array?

Alih keluar Nilai Pendua daripada JS Array

Apabila bekerja dengan tatasusunan JavaScript, selalunya perlu mengalih keluar nilai pendua. Beberapa pendekatan boleh digunakan untuk mencapai ini tanpa mengubah tatasusunan asal.

Menggunakan Set Pembina dan Sintaks Spread

Kaedah yang paling mudah ialah menggunakan Set pembina dan sintaks penyebaran:

const uniq = [...new Set(array)];

Ini mencipta Set baharu daripada tatasusunan, yang mengalih keluar pendua secara automatik. Sintaks hamparan kemudian menukar Set kembali kepada tatasusunan.

Menapis Elemen Unik

Pilihan lain ialah menapis tatasusunan berdasarkan kaedah indexOf:

const uniqueArray = a.filter(function(item, pos) {
    return a.indexOf(item) == pos;
});

Kaedah ini berulang melalui tatasusunan dan menyemak sama ada kejadian pertama setiap elemen sepadan dengan kedudukannya. Hanya elemen unik yang akan memenuhi syarat ini.

Cincang dengan Objek

Untuk kecekapan, pencincangan dengan objek boleh digunakan:

function uniq(a) {
    const seen = {};
    return a.filter(function(item) {
        return seen.hasOwnProperty(item) ? false : (seen[item] = true);
    });
}

Pendekatan ini mengekalkan jadual cincang untuk menyemak nilai pendua dengan cepat, memastikan masa linear kerumitan.

Isih dan Penapisan

Jika tatasusunan input diisih, anda boleh mengalih keluar pendua dengan mengisihnya dan kemudian menapis unsur-unsur yang sama berturut-turut:

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

Uniquing by Custom Kriteria

Untuk menapis pendua berdasarkan kriteria tertentu, fungsi panggil balik boleh digunakan:

function uniqBy(a, key) {
    const seen = {};
    return a.filter(function(item) {
        const k = key(item);
        return seen.hasOwnProperty(k) ? false : (seen[k] = true);
    });
}

Panggil balik kunci membolehkan perbandingan tersuai dan membolehkan mengalih keluar pendua berdasarkan lebih kompleks logik.

Memelihara yang Pertama atau Terakhir Kejadian

Dalam senario tertentu, adalah wajar untuk mengekalkan sama ada kejadian pertama atau terakhir unsur pendua:

function uniqByKeepFirst(a, key) {
    const seen = new Set();
    return a.filter(item => {
        const k = key(item);
        return seen.has(k) ? false : seen.add(k);
    });
}

function uniqByKeepLast(a, key) {
    return [
        ...new Map(
            a.map(x => [key(x), x])
        ).values()
    ]
}

Fungsi uniqByKeepFirst menggunakan Set untuk mengekalkan kunci unik , manakala uniqByKeepLast menggunakan Peta untuk mengekalkan nilai ditemui terakhir yang dikaitkan dengan setiap kunci.

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Nilai Duplikat daripada Tatasusunan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn