javascript - Une déduplication de tableau plutôt pervertie, veuillez trouver une méthode ! ! !
阿神
阿神 2017-05-19 10:19:12
0
5
583

var a = ['bonjour',{bonjour : '323651',au revoir : '43434'},[1,2,34],true,10,9,8,10,'true','bonjour',true ,false,9,{bonjour : '312312',ok : 32323},[1,2,34]];

阿神
阿神

闭关修行中......

répondre à tous(5)
習慣沉默

Pour les nombres, les types booléens, etc., ajoutez simplement le jugement directement à la fin, ou additionnez-les ensemble. Vous le comprendrez plus clairement lorsque je l'écrirai de cette façon.

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);
巴扎黑

Objet contre objet et tableau contre tableau sont traités de manière récursive et d'autres situations sont comparées directement.

  1. Directement === jugement, si égalité, c'est fait.

  2. Dans le cas d'inégalité, s'il s'agit d'un objet contre un objet ou d'un tableau contre un tableau, comparez-le avec JSON stringify, et tout le reste sera fait.

刘奇

Si l'objet est dans un ordre séquentiel ou si les éléments internes du tableau sont des tableaux ordonnés, alors les éléments sont convertis en chaînes et comparés

.
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);
给我你的怀抱

Il est préférable d'utiliser un autre caractère pour séparer les JSON. Si vous ne pouvez le faire que tel quel, utilisez « hello » pour diviser le tableau, puis comparez pour supprimer les doublons.

淡淡烟草味

nouvel ensemble()

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal