javascript - js détermine si un tableau est répété
Joseph Gordon-Levitt2017-07-05 10:57:12
0
5
1021
Comment js détermine-t-il s'il y a des valeurs en double dans un objet tableau et supprime les valeurs en double pour n'en garder qu'une seule Par exemplevar arr = [{name:'a'},{name:'b'},{name:'c'},{name:'d'},{name:'a'}]Comment comparer
Vous pouvez le trouver avec une double boucle for, comparer la première avec les suivantes, les supprimer si elles sont répétées, rechercher à partir de la seconde, les comparer à l'envers et les supprimer si elles sont répétées
// Déduplication de tableau // Une clé signifie une déduplication de tableau complexe, qui est basée sur la clé d'attribut de l'objet dans le tableau fonction arrUniq(arr, key) {
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;
Vous pouvez le trouver avec une double boucle for, comparer la première avec les suivantes, les supprimer si elles sont répétées, rechercher à partir de la seconde, les comparer à l'envers et les supprimer si elles sont répétées
Écrit sur un coup de tête. . . Je ne sais pas si toutes les exigences sont remplies. . . Haha
Méthode 1 :
Méthode 2 :
temp.indexOf ( arr[i].name ) = -1;
res.push(arr[i]);
Il existe de nombreuses méthodes pour dédupliquer les tableaux, et vous pouvez avoir une meilleure méthode
Matières premières
arr est un tableau unidimensionnel et les éléments sont des objets. Le contenu à traiter est l'attribut
name
sous l'objet.Idées de traitement
Parcourez-les, puis comparez-les un par un à chaque fois
.item
基础上再遍历一次arr
Si des doublons sont trouvés, laissez un enregistrementCapture d'écran
// Déduplication de tableau
// Une clé signifie une déduplication de tableau complexe, qui est basée sur la clé d'attribut de l'objet dans le tableau
fonction arrUniq(arr, key) {
}