Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengeluarkan Nilai Pendua dengan Cekap daripada Tatasusunan JavaScript, Termasuk Sifar?

Bagaimanakah Saya Boleh Mengeluarkan Nilai Pendua dengan Cekap daripada Tatasusunan JavaScript, Termasuk Sifar?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-22 07:49:13454semak imbas

How Can I Efficiently Remove Duplicate Values from a JavaScript Array, Including Zeros?

Mengalih keluar Pendua untuk Mendapatkan Nilai Unik daripada Tatasusunan JavaScript

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:

  • Fungsi panggil balik, onlyUnique, mengesahkan sama ada elemen pertama kejadian dalam tatasusunan sepadan dengan kedudukannya.
  • Dengan menapis tatasusunan dengan keadaan ini, kami mengasingkan elemen unik ke dalam tatasusunan baharu, seperti yang ditunjukkan dalam contoh.

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!

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
Artikel sebelumnya:Perjalanan Reaksi Saya: Hari 19Artikel seterusnya:Perjalanan Reaksi Saya: Hari 19