javascript - js menentukan sama ada tatasusunan diulang
typecho2017-07-05 10:57:12
0
5
1108
Bagaimana js menentukan sama ada terdapat nilai pendua dalam objek tatasusunan, dan padamkan nilai pendua untuk menyimpan hanya satu Sebagai contoh var arr = [{name:'a'},{name:'b'},{name:'c'},{name:'d'},{name:'a'}] Cara membandingkan
Anda boleh menemuinya dengan gelung berganda, bandingkan yang pertama dengan yang berikut, padamkannya jika diulang, cari dari yang kedua, bandingkannya ke belakang, dan padamkannya jika diulang
const del = (arr) => {
for( let i=0;i<arr.length;i++) {
for(let j=i+1;j<arr.length;j++) {
if (arr[i].id==arr[j].id) {
arr.splice(j,1);
i--;
}
}
}
return arr;
}
// Penyahduaan tatasusunan // Kunci bermaksud penyahduaan tatasusunan yang kompleks, yang berdasarkan kekunci atribut objek dalam tatasusunan fungsi arrUniq(arr, kunci) {
if (!Array.isArray(arr) || arr.length < 2) {
return arr;
}
// 简单数组去重
if (!key) {
return Array.from(new Set(arr));
}
// 复杂数组去重
var obj = {},
res = [];
arr.forEach((item) => {
if (!obj[item[key]]) {
res.push(item);
obj[item[key]] = true;
}
});
return res;
Anda boleh menemuinya dengan gelung berganda, bandingkan yang pertama dengan yang berikut, padamkannya jika diulang, cari dari yang kedua, bandingkannya ke belakang, dan padamkannya jika diulang
Ditulis sesuka hati. . . Tidak pasti jika semua keperluan dipenuhi. . . Haha
Kaedah 1:
Kaedah 2:
temp.indexOf ( arr[i].name ) = -1;
res.push(arr[i]);
Terdapat banyak kaedah untuk menyahduplikasi tatasusunan, dan anda boleh mempunyai kaedah yang lebih baik
Bahan mentah
arr ialah tatasusunan satu dimensi dan unsur-unsurnya ialah objek. Kandungan yang akan diproses ialah atribut
name
di bawah objek.Memproses idea
Lintasinya, kemudian bandingkan satu persatu setiap kali
item
基础上再遍历一次arr
dilalui Jika pendua ditemui, tinggalkan rekodScreenShot
// Penyahduaan tatasusunan
// Kunci bermaksud penyahduaan tatasusunan yang kompleks, yang berdasarkan kekunci atribut objek dalam tatasusunan
fungsi arrUniq(arr, kunci) {
}