Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengalih Keluar Nilai Pendua daripada Tatasusunan JavaScript?

Bagaimanakah Saya Boleh Mengalih Keluar Nilai Pendua daripada Tatasusunan JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-12-22 12:22:11990semak imbas

How Can I Remove Duplicate Values from a JavaScript Array?

Alih keluar Nilai Pendua daripada JS Array

Penduaan elemen dalam tatasusunan JavaScript ialah isu biasa. Untuk menangani perkara ini, pelbagai kaedah boleh digunakan.

Sintaks Tetapkan dan Sebarkan:

Penyelesaian paling ringkas menggunakan pembina Set dan sintaks penyebaran:

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

Naif Pendekatan:

Untuk kesederhanaan, pendekatan mudah melibatkan elemen penapisan berdasarkan indeksnya:

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

Menggunakan Hashtable:

A kaedah yang lebih cekap memanfaatkan jadual hash, menggunakan sifat objek sebagai kunci:

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

Menggabungkan Pendekatan:

Untuk mengendalikan pelbagai tatasusunan, penyelesaian hibrid menggabungkan jadual hash untuk primitif dan carian linear untuk objek:

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);
    });
}

Isih dan Penapisan:

Isih sebelum penapisan menyediakan pilihan lain, mengalih keluar pendua berdasarkan elemen bersebelahan:

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

Perbandingan Tersuai:

Untuk perbandingan unik, panggilan balik boleh dihantar, dengan "kunci" yang sama ditapis:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Nilai Pendua 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