Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengeluarkan Nilai Pendua dengan Cekap daripada Tatasusunan JavaScript, Termasuk Sifar?
Dalam usaha untuk memastikan keunikan elemen dalam tatasusunan berangka, pengekod sering terjumpa coretan kod berikut:
Array.prototype.getUnique = function() { var o = {}, a = [], i, e; for (i = 0; e = this[i]; i++) {o[e] = 1}; for (e in o) {a.push (e)}; return a; }
Walaupun skrip ini berfungsi dengan sempurna di bawah kebanyakan keadaan, ia goyah apabila tatasusunan mengandungi sifar, meninggalkan ruang untuk penambahbaikan. Untuk merungkai isu ini, mari kita selidiki perbandingan dengan skrip yang serupa namun berdaya tahan daripada Stack Overflow:
function onlyUnique(value, index, array) { return array.indexOf(value) === index; } // Example usage: var a = ['a', 1, 'a', 2, '1']; var unique = a.filter(onlyUnique); console.log(unique); // ['a', 1, 2, '1']
Dalam JavaScript 1.6 (atau ECMAScript 5), kaedah penapis menawarkan pendekatan yang lebih cekap untuk merentasi tatasusunan dan mengekstrak nilai unik:
Dengan menggabungkan ini pendekatan dikemas kini ke dalam kod anda, anda boleh memastikan tatasusunan JavaScript anda tidak mengandungi unsur berlebihan, walaupun sifar hadir.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Nilai Pendua dengan Cekap daripada Tatasusunan JavaScript, Termasuk Sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!