Question

J'ai un tableau comme ci-dessous.

[emails] => Array (
   [0] => Array (
      [a] => a@a.com
      [is_verified_a] => 1
    )
   [1] => Array (
      [b] => a@a.com
      [is_verified_b] => 1
   )
),

J'ai besoin de trouver des doublons dans ce tableau, mais les clés sont différentes, c'est-à-dire que a et b ont le même e-mail « a@a.com ».

c'est-à-dire que vous devez vérifier les doublons dans ce tableau et n'avoir besoin que de la valeur 'a@a.com' dans une variable distincte.Existe-t-il un moyen de le savoir en utilisant _.uniq ou toute autre fonction de trait de soulignement ?

S'il vous plaît, aidez-moi. Merci beaucoup.

Était-ce utile?

La solution

Ce que vous voulez faire n'est pas clair.Cependant, puisque vous utilisez JavaScript, votre tableau devrait ressembler à :

var emails = [
    {
        email: "a@a.com",
        verified: true,
        key: "a"
    },
    {
        email: "a@a.com",
        verified: true,
        key: "b"
    }
];

Cela n'a aucun sens d'encoder séparément les clés de vos objets (surtout pas dans les noms de propriétés).

Pour supprimer les doublons d'un tableau, nous pouvons créer un générique removeDuplicatesBy fonction:

function removeDuplicatesBy(comparator, array) {
    var length = array.length;
    var unique = [];

    for (var i = 0; i < length; i++) {
        var element = array[i];
        var isUnique = true;

        for (var j = 0; j < i; j++) {
            if (comparator(element, array[j])) {
                isUnique = false;
                break;
            }
        }

        if (isUnique) unique.push(element);
    }

    return unique;
}

Nous pouvons maintenant supprimer les doublons dans le emails tableau comme suit :

var uniqueEmails = removeDuplicatesBy(function (a, b) {
    return a.email === b.email && a.verified === b.verified;
}, emails);

Si vous devez conserver les clés de vos objets, vous faites probablement quelque chose de mal.Vous devriez envisager de restructurer votre code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top