-1
votes

Comment utiliser pousser pour créer un nouveau tableau? Erreur inattendue

J'ai ce code ci-dessous xxx

et j'ai une erreur "ne peut lire" la longueur "de non définie", et je ne sais pas pourquoi. Avez-vous une idée de comment puis-je résoudre ce problème?


2 commentaires

Goosefilter (tableau, oies); au lieu de Goosefilter (tableau);


Vous devrez également mettre le retour de la boucle. Votre code de code est simplifié à Const Résultat = geese.filter (E => Array.Ininclut (E))


6 Réponses :


2
votes

Vous déclarez une variable nommée oies code> ici:

function gooseFilter(array) {


0 commentaires

1
votes

au lieu de

function gooseFilter(geese) {


0 commentaires

0
votes

appelez Goosefilter (tableau); avec deuxième argument xxx


1 commentaires

Vous recherchez Intersection



0
votes

Vous avez défini la fonction Goosefilter qui accepte deux arguments, mais lors de l'appelant, vous n'acceptez qu'un seul paramètre: Goosefilter (tableau) .

Vous devez passer les deux tableaux définis à votre fonction: Goosefilter (tableau, oies)


0 commentaires

3
votes

Vous oubliez de passer le deuxième argument. Et votre déclaration de retour devrait être hors de boucle. Considérez l'extrait suivant:

p>

let geese = ["African", "Roman Tufted", "Toulouse", "Pilgrim",
    "Steinbacher"
];
let array = ["Mallard", "Hook Bill", "African", "Crested", "Pilgrim",
    "Toulouse", "Blue Swedish"
];

function gooseFilter(array, geese) {
    var names = [];
    for (let i = 0; i < geese.length; i++) {
        if (array.includes(geese[i])) {
            names.push(geese[i])
        }
    }
    return names;
}

console.log(gooseFilter(array, geese));


0 commentaires

0
votes

Il y a 2 erreurs dans votre code:

  1. vous avez défini la fonction Goosefilter code> avec 2 paramètres, mais appelez avec un seul tableau code>, cette cause oies code> est non défini code> indéfini . C'est pourquoi vous avez eu une erreur li> ol>

    'longueur' de non défini code> p> blockQuote>

    1. vous retour code> dans le pour code> boucle. Cela fera l'arrêt de la boucle après le premier élément. Li> ol>

      Le code doit être p>

      P>

      let geese = ["African", "Roman Tufted", "Toulouse", "Pilgrim", 
      "Steinbacher"];
      let array = ["Mallard", "Hook Bill", "African", "Crested", "Pilgrim", 
      "Toulouse", "Blue Swedish"];
      
      function gooseFilter(_array, _geese) { // parameter # variable
           var name = [];
           for (let i=0; i<_geese.length; i++) {
             if (_array.includes(_geese[i])) {
             name.push(_geese[i])
             }
             // return name;  <-- Return here will stop the loop after the first item
           }
           return name; // return here instead
           
      }
      
      const rs = gooseFilter(array, geese) 
      
      console.log(rs)


0 commentaires