0
votes

Comment concessurer 2 matrices JavaScript dans un nouveau tableau qui est une combinaison de ces deux?

Je veux écrire une fonction nommée concatarray (array1, array2) code> qui prend deux tableaux comme paramètres. Cette fonction doit renvoyer un nouveau tableau une combinaison de ces deux.

J'ai essayé cela, mais dans la console, il indique: 'Array1 n'est pas défini'. P>

function concatArray(array1, array2) {
    var array1 = [1, 3, 7];
    var array2 = [12, 21, 42];
}
console.log(array1.concat(array2));


2 commentaires

Vous n'appelez pas concatarray n'importe où, alors pourquoi array1 être défini?


En plus de ne pas appeler concatarray , array1 n'est valable que dans la portée de la fonction. Il n'existe pas en dehors de la fonction concatarray . C'est pourquoi vous obtenez l'erreur. Ce n'est pas vraiment clair ce que votre fonction est censée faire. Voulez-vous dire la console .log à l'intérieur de la fonction?


4 Réponses :


0
votes

Ce que vous devez faire est fait dans votre console.log Déclaration. Mais voici la solution xxx


0 commentaires

1
votes

Permettez-moi de casser ma réponse en quelques parties:

  • Pourquoi Array1 est-il "non défini"? Vous essayez d'utiliser une variable lexiquement scopée à votre fonction. Découvrez Ce message Pour plus. Essentiellement, en utilisant le mot-clé var à l'intérieur d'une fonction, vous avez déclaré une variable qui ne peut être accédée qu'à partir de ce bloc de fonction.

    Si vous deviez appeler la console.log de l'intérieur du bloc de fonction, il serait défini. Par exemple: xxx

    • Comment puis-je passer deux tableaux comme paramètres? Votre implémentation actuelle fait accepte deux paramètres, mais vous écrasez immédiatement les valeurs dans votre fonction. Vous pouvez supprimer ces déclarations et compter sur le code qui invoque la fonction pour définir vos deux tableaux.

      comme ceci: xxx

      • Comment puis-je écrire une fonction qui concate deux tableaux? Vous étiez vraiment proche de ce que vous avez. Quelques choses que vous avez oublié: 1) une déclaration de retour dans votre fonction 2) une invocation de votre fonction.

        Essayez quelque chose comme ceci: xxx


0 commentaires

0
votes

Votre question n'est pas claire, peut-être que vous recherchez quelque chose comme ça?

p>

function concatArray(arr_1, arr_2)
{
  return [].concat(arr_1, arr_2)  // eq return arr_1.concat(arr_2) 
}

var array1 = [1, 3, 7];
var array2 = [12, 21, 42];
var array3 = concatArray(array1, array2);

console.log('array1',JSON.stringify(array1));
console.log('array2',JSON.stringify(array2));
console.log('array3',JSON.stringify(array3));


0 commentaires

0
votes

Vous pouvez utiliser l'opérateur de répandre de ES6.

function concatArray(array1, array2) {
    return [...array1, ...array2];
}

var array1 = [1, 3, 7];
var array2 = [12, 21, 42];
console.log(concatArray(array1, array2));


0 commentaires