Apabila bekerja dengan tatasusunan objek, selalunya perlu mengalih keluar pendua. Kaedah penapis ES6 menyediakan penyelesaian yang elegan untuk tugasan ini.
obj.arr = obj.arr.filter((nilai, indeks, diri ) =>
indeks === self.findIndex((t) => (
t.place === value.place && t.name === value.name
))
)
Kod ini membandingkan setiap elemen dalam tatasusunan dengan semua elemen seterusnya. Jika pendua ditemui, ia ditapis keluar.
Untuk pendekatan yang lebih generik:
const uniqueArray = obj. arr.filter((nilai, indeks) => {
const _value = JSON.stringify(value);
return index === obj.arr.findIndex(obj => {
return JSON.stringify(obj) === _value;
});
});
Strategi ini menyerikan setiap objek kepada rentetan dan membandingkan rentetan untuk mengenal pasti pendua.
Menggunakan strategi harta:
const getUniqueItemsByProperties = (item, propNames) =>
items.filter((item, index, array) =>
index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNames))
);
Pendekatan ini memberikan fleksibiliti dalam menentukan sifat yang keunikan ditentukan .
Untuk membenarkan kedua-dua tatasusunan dan nama sifat tunggal:
const getUniqueItemsByProperties = (item, propNames) => {
const propNamesArray = Array.from(propNames);
kembali item.penapis((item, indeks, tatasusunan) =>
index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNamesArray))
);
};
Idea utama di sini ialah menggunakan kaedah penapis untuk mengenal pasti pendua. Kriteria keunikan ditentukan oleh logik perbandingan, yang boleh disesuaikan berdasarkan sifat objek atau strategi bersiri.
Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Objek Pendua dengan Cekap dari Array dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!