Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Mengeluarkan Objek Duplikat dengan Cekap daripada Array dalam JavaScript?

Bagaimanakah Saya Boleh Mengeluarkan Objek Duplikat dengan Cekap daripada Array dalam JavaScript?

DDD
Lepaskan: 2024-12-21 19:53:12
asal
218 orang telah melayarinya

How Can I Efficiently Remove Duplicate Objects from an Array in JavaScript?

Mengalih keluar Pendua daripada Tatasusunan Objek: Penerokaan Terperinci

Artikel ini menyelidiki masalah biasa yang dihadapi apabila bekerja dengan tatasusunan objek: mengalih keluar masukan pendua. Matlamat kami adalah untuk memberikan pemahaman yang mendalam tentang kaedah terbaik untuk mencapai tugasan ini.

Pernyataan Masalah

Pertimbangkan objek berikut:

obj = {};
obj.arr = new Array();
obj.arr.push({place: "here", name: "stuff"});
obj.arr.push({place: "there", name: "morestuff"});
obj.arr.push({place: "there", name: "morestuff"});
Salin selepas log masuk

Matlamat kami adalah untuk mengalih keluar objek pendua daripada obj.arr supaya ia mengandungi hanya unik elemen.

ES6 Magic

Memanfaatkan kuasa ES6, kita boleh menggunakan penyelesaian satu pelapik:

obj.arr = obj.arr.filter((value, index, self) =>
  index === self.findIndex((t) => (
    t.place === value.place && t.name === value.name
  ))
);
Salin selepas log masuk

Generik Pendekatan

Untuk penyelesaian yang lebih serba boleh, pertimbangkan perkara berikut kod:

const uniqueArray = obj.arr.filter((value, index) => {
  const _value = JSON.stringify(value);
  return index === obj.arr.findIndex(obj => {
    return JSON.stringify(obj) === _value;
  });
});
Salin selepas log masuk

Strategi Harta

Pendekatan alternatif ialah membandingkan sifat objek:

const isPropValuesEqual = (subject, target, propNames) =>
  propNames.every(propName => subject[propName] === target[propName]);

const getUniqueItemsByProperties = (items, propNames) => 
  items.filter((item, index, array) =>
    index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNames))
  );
Salin selepas log masuk

Penjelasan

Penyelesaian yang disediakan menggunakan perkara berikut konsep:

  • penapis: Memilih elemen tatasusunan yang memenuhi syarat yang ditentukan.
  • findIndex: Mengembalikan indeks elemen pertama dalam tatasusunan yang memenuhi syarat.
  • Perbandingan harta: Tentukan sama ada dua objek mempunyai nilai yang sama untuk satu set sifat yang ditentukan.

Dengan menggunakan strategi ini, kami boleh mengalih keluar objek pendua daripada tatasusunan dengan berkesan, memastikan setiap elemen adalah unik.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Objek Duplikat dengan Cekap daripada Array dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan