0
votes

Vérification des valeurs d'un tableau contre un autre en JS

J'essaie de vérifier que le premier tableau contient les mêmes valeurs de la deuxième matrice. Cependant, je suis confus sur mon code.

La première question est la suivante: pourquoi mon code exécute mon autre relevé si toutes les lettres du premier tableau sont contenues dans la seconde? Il exécutera 2 lignes de "Ceci n'est pas valide" p>

Deuxième question est la suivante: Si mon premier tableau contient une lettre en double, il passera toujours le chèque E.g ["A", "B", "A", "D", "E", "F"]; Même s'il y a deux A est dans le premier, il verra le même "A" à nouveau. N'importe qui connaît un moyen autour de cela. P>

Désolé pour mes longues questions sinueuses mais j'espère que cela a du sens. Merci:) P>

var letters = ["a", "b" , "c", "d", "e", "f"];
var otherLetters = ["a","b", "c" , "d", "e", "f"];

var i = -1;

while(i<=letters.length){



i++;
    if(otherLetters.includes(letters[i])){
        console.log("This is valid");
    }

    else 

    console.log("This is not valid");



}


0 commentaires

7 Réponses :


1
votes

Vous n'avez pas fermé les crochets. Et votre boucle est très déroutante, veuillez utiliser des objets. Voici un exemple de travail: xxx


1 commentaires

Merci Nico, je me sens assez stupide maintenant haha. Merci pour votre réponse a été capable de réparer mon code :)



1
votes

Vous essayez d'accéder aux éléments de tableau qui sont hors limites. Le script exécute 8 itérations sur un tableau avec 6 éléments.


1 commentaires

Merci Matthias, j'ai eu trié maintenant :)



0
votes

Tout d'abord, vous avez défini i = -1 qui est confus puisque la position de départ de la matrice est 0. La raison pour laquelle votre boucle fonctionne deux fois plus est parce que la boucle a commencé à -1 au lieu de 0 et ensuite la condition i <= longueur.

Etant donné que [Longueur de tableau = Dernier index + 1] Votre boucle fonctionne deux fois supplémentaires. Juste pour que votre code fonctionne, assigner var i = 0 et pendant que la condition i


0 commentaires

0
votes

La solution la plus simple utilise Lodash . Il a toutes les optimisations hors de la case:

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>


0 commentaires

0
votes

Les matrices sont basées sur l'index et commence à partir de 0. SO, la vérification de -1 et moins que les lettres.length version met le code dans les limites.

var letters = ["a", "b" , "c", "d", "e", "f"];
var otherLetters = ["a","b", "c" , "d", "e", "f"];
var i = 0;
while(i<letters.length)
{
    if(otherLetters.includes(letters[i]))
    {
        console.log("This is valid");
    }
    else
    {
        console.log("This is not valid");
    }
    i++;
}


1 commentaires

Merci Abhishek! Je ne sais pas pourquoi j'ai décidé de commencer de -1 tbh. Je pense que mon cerveau est frit lol.



0
votes

Vous pouvez utiliser une combinaison de array.pototype.eudy code> avec array.pototype.inclut code> , ainsi que quelques clauses de garde supplémentaires.

p>

const areSequenceEqual = (arr1, arr2) => {
  if (!arr1 || !arr2) {
    return false;
  }

  if (arr1.length !== arr2.length) {
    return false;
  }

  return arr1.every(x => arr2.includes(x));
};

const letters = ["a", "b", "c", "d", "e", "f"];
const otherLetters = ["a", "b", "c", "d", "e", "f"];
const someOtherLetters = ["a", "b", "c", "d", "e", "f", "g"];

console.log(areSequenceEqual(letters, otherLetters));
console.log(areSequenceEqual(letters, undefined));
console.log(areSequenceEqual(letters, someOtherLetters));


1 commentaires

Merci Kunal, j'ai pu utiliser la méthode incluse pour résoudre mon problème :)



0
votes

rien à craindre, cpog90.

Essayez cette solution. strong> p>

p>

    var letters = ["a", "b" , "c", "d", "e", "f"];
    var otherLetters = ["a","b", "c" , "d", "e", "f"];
    
    var i = 0;
    while(i<letters.length){
        if(otherLetters.includes(letters[i])){
            console.log("This is valid");
        }
        else {
           console.log("This is not valid "+i);
        }
        i++;
    }


1 commentaires

Merci pour l'explication claire et si! Encore une fois je ne sais pas pourquoi je pensais commencer de -1 lol. A été capable de réparer mon code up :)