Rumah >hujung hadapan web >tutorial js >Bagaimana Mencari dan Mengembalikan Nilai Unik dengan Cekap dalam Tatasusunan JavaScript?

Bagaimana Mencari dan Mengembalikan Nilai Unik dengan Cekap dalam Tatasusunan JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-28 10:24:10962semak imbas

How to Efficiently Find and Return Unique Values in a JavaScript Array?

Mencari Nilai Unik dalam Tatasusunan JavaScript

Apabila berurusan dengan tatasusunan dalam JavaScript, selalunya wajar untuk mengalih keluar nilai pendua untuk memastikan keunikan. Berikut ialah masalah biasa yang dihadapi dengan tatasusunan JavaScript:

var numbers = [1, 2, 3, 4, 5, 1, 2];
numbers.getUnique(); // [1, 2, 3, 4, 5] (incorrectly includes 1 and 2)

Kaedah prototaip yang disediakan, Array.prototype.getUnique, cuba menapis pendua tetapi gagal apabila ia menemui nilai sifar.

Kepada faham isu itu, mari kita periksa kod:

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

Masalahnya terletak pada objek yang digunakan untuk mengesan nilai unik. Apabila nombor dimasukkan ke dalam o, ia ditukar kepada rentetan. Walau bagaimanapun, untuk sifar, penukaran ini menghasilkan rentetan kosong ''.

Oleh itu, apabila gelung kedua berulang ke atas o, ia menemui rentetan kosong sebagai kunci dan menambahkannya pada tatasusunan. Ini mengakibatkan kemasukan nilai pendua yang salah.

Penyelesaian yang Betul untuk Nilai Unik

Untuk mendapatkan nilai unik daripada tatasusunan dengan tepat, pertimbangkan penyelesaian ES6 berikut menggunakan kaedah penapis:

function onlyUnique(value, index, array) {
  return array.indexOf(value) === index;
}

// usage example:
var numbers = [1, 2, 3, 4, 5, 1, 2];
var unique = numbers.filter(onlyUnique);

console.log(unique); // [1, 2, 3, 4, 5]

Fungsi ini membandingkan indeks setiap nilai dalam tatasusunan dengan indeks semasa. Jika indeks sepadan, ini bermakna nilai itu unik dan disertakan dalam tatasusunan yang ditapis. Dengan pendekatan ini, semua nilai pendua dialih keluar dengan berkesan.

Atas ialah kandungan terperinci Bagaimana Mencari dan Mengembalikan Nilai Unik dengan Cekap dalam 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