Untuk nombor, jenis Boolean, dsb., cuma tambahkan penghakiman secara langsung pada penghujungnya, atau tambahkannya bersama-sama Anda akan faham dengan lebih jelas apabila saya menulisnya dengan cara ini.
var a = ['{"1":1,"2":2}', {1:1, 2:2}, 'hello',{hello: '323651',bye: '43434'},[1,2,34],true,10,9,8,10,'true','hello',true,false,9,'9',{hello: '312312',ok: 32323},[1,2,34]];
var json = {};
var arr = [];
for (let i = 0, len = a.length; i < len; i++) {
let str = JSON.stringify(a[i]) + typeof a[i];
if (!json[str]) {
arr.push(a[i]);
}
json[str] = 1;
}
console.log(arr);
Object vs Object dan Array vs Array diproses secara rekursif, dan kes lain dibandingkan secara langsung.
Penghakiman === langsung, jika sama, ia sudah selesai.
Sekiranya berlaku ketidaksamaan, jika objek vs objek atau tatasusunan vs tatasusunan, bandingkan dengan JSON stringify, dan semua yang lain akan baik-baik saja.
Jika jujukan objek adalah berjujukan atau elemen tatasusunan dalaman tersusun tatasusunan, maka elemen itu akan ditukar kepada rentetan dan kemudian dibandingkan.
var arr1 =[...],arr2=[....],arr3=[];
var rst = [];
var process = function(arr){
arr.forEach(funciton(v,i){
var v2s;
if(v.constructor === Object){
v2s = JSON.stringify(v);
} else if( v.constructor === Boolean){
v2s = "'"+v.toString()+"'"
} else {
v2s = v.toString();
}
if (arr3.indexOf(v2s)<0){
arr3.push(v2s);
rst.push(v);
}
})
}
process(arr1);
process(arr2);
console.log(rst);
Sebaik-baiknya gunakan aksara lain untuk memisahkan JSON Jika anda hanya boleh mengekalkannya seperti sekarang, gunakan 'hello' untuk memisahkan tatasusunan, dan kemudian bandingkan untuk mengalih keluar pendua.
Untuk nombor, jenis Boolean, dsb., cuma tambahkan penghakiman secara langsung pada penghujungnya, atau tambahkannya bersama-sama Anda akan faham dengan lebih jelas apabila saya menulisnya dengan cara ini.
Object vs Object dan Array vs Array diproses secara rekursif, dan kes lain dibandingkan secara langsung.Penghakiman
===
langsung, jika sama, ia sudah selesai.Sekiranya berlaku ketidaksamaan, jika objek vs objek atau tatasusunan vs tatasusunan, bandingkan dengan JSON stringify, dan semua yang lain akan baik-baik saja.
Jika jujukan objek adalah berjujukan atau elemen tatasusunan dalaman tersusun tatasusunan, maka elemen itu akan ditukar kepada rentetan dan kemudian dibandingkan.
Sebaik-baiknya gunakan aksara lain untuk memisahkan JSON Jika anda hanya boleh mengekalkannya seperti sekarang, gunakan 'hello' untuk memisahkan tatasusunan, dan kemudian bandingkan untuk mengalih keluar pendua.
Set baru()