Je dois savoir s'il y a des valeurs différentes dans le tableau. S'il existe, exécutez la fonction x. S'il n'existe pas, exécutez la fonction y. Mais en utilisant une boucle for, si elle rencontre la même chose au début, elle exécutera y, et elle n'exécutera pas x jusqu'à ce qu'elle en rencontre une autre. Comment lui faire exécuter la fonction correspondante après les avoir toutes parcourues ?
Utilisez Array.prototype.every() ou Array.prototype.some()
1. Utilisez la méthode ES5 array.every, qui exécute une fonction sur chaque élément du tableau. Lorsque tous les résultats de l'exécution de la fonction sont vrais, le résultat final est vrai, sinon il se terminera prématurément et deviendra faux.
2. En utilisant une boucle for, vous avez besoin d'une variable pour enregistrer la valeur du premier élément du tableau, puis démarrez la boucle lorsque vous constatez qu'il y a un élément dans le tableau qui n'est pas égal à votre variable. peut déterminer qu'il est temps d'exécuter X (cela Vous pouvez le casser quand); sinon, il n'y a pas de valeurs différentes dans le tableau, exécutez Y.
3. Utilisez la méthode ES5 array.reduce, qui accepte deux éléments du tableau à la fois. Vous pouvez comparer directement si les deux éléments sont égaux, tant qu'ils ne sont pas égaux, c'est Y..
Mais cette méthode ne peut pas échouerAjoutez une variable avant for, modifiez-la si vous la rencontrez dans for, puis si après for
Si vous utilisez une boucle for, vous devez définir une variable comme indicateur à l'extérieur de for :
Si ES6 est pris en charge, vous pouvez utiliser Set pour dédupliquer le tableau, puis déterminer la longueur des deux tableaux :
La description de "il existe des valeurs différentes" est un peu vague. Je crois comprendre qu'il y a une valeur dans le tableau qui est différente des autres valeurs.