Je veux écrire une fonction nommée J'ai essayé cela, mais dans la console, il indique: 'Array1 n'est pas défini'. P> concatarray (array1, array2) code> qui prend deux tableaux comme paramètres. Cette fonction doit renvoyer un nouveau tableau une combinaison de ces deux.
function concatArray(array1, array2) {
var array1 = [1, 3, 7];
var array2 = [12, 21, 42];
}
console.log(array1.concat(array2));
4 Réponses :
Ce que vous devez faire est fait dans votre console.log Déclaration. Mais voici la solution
Permettez-moi de casser ma réponse en quelques parties:
var code> à 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. LI>
ul> Si vous deviez appeler la console.log de l'intérieur du bloc de fonction, il serait défini. Par exemple: p> xxx pré>
- Comment puis-je passer deux tableaux comme paramètres?
Votre implémentation actuelle fait em> 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. li>
ul>
comme ceci: p> xxx pré>
- 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. li>
ul>
Essayez quelque chose comme ceci: p> xxx pré> p>
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));
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));
Vous n'appelez pas
concatarray code> n'importe où, alors pourquoi
array1 code> être défini?
En plus de ne pas appeler
concatarray code>,
array1 code> n'est valable que dans la portée de la fonction. Il n'existe pas en dehors de la fonction
concatarray code>. 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 code> à l'intérieur de la fonction?