如何将2个JavaScript数组合并成一个新数组,该数组是这两个数组的组合?

如何将2个JavaScript数组合并成一个新数组,该数组是这两个数组的组合?,javascript,concat,Javascript,Concat,我想编写一个名为concatArray(array1,array2)的函数,它将两个数组作为参数。此函数应返回一个新数组,该数组是这两个数组的组合 我尝试过这样做,但在控制台中显示:“array1未定义” function concatArray(array1, array2) { var array1 = [1, 3, 7]; var array2 = [12, 21, 42]; } console.log(array1.concat(array2)); 预期的输出应该是:1

我想编写一个名为
concatArray(array1,array2)
的函数,它将两个数组作为参数。此函数应返回一个新数组,该数组是这两个数组的组合

我尝试过这样做,但在控制台中显示:“array1未定义”

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

预期的输出应该是:1,3,7,12,21,42

您需要做的是在console.log语句中完成。但这是解决办法

var array1 = [1, 3, 7];
var array2 = [12, 21, 42];

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

console.log(concatArray(array1, array2));

让我把我的答案分成几个部分:

  • 为什么array1“未定义”? 您试图使用的变量在词汇上限定为函数的范围。查看更多信息。本质上,通过在函数内部使用关键字
    var
    ,您已经声明了一个只能从该函数块中访问的变量
如果要从功能块中调用console.log,则会定义它。例如:

function concatArray(array1, array2) {
    var array1 = [1, 3, 7];
    var array2 = [12, 21, 42];
    console.log(array1.concat(array2));
}
  • 如何将两个数组作为参数传递? 当前实现确实接受两个参数,但会立即覆盖函数中的值。您可以删除这些声明,并依靠调用函数来定义两个数组的代码
像这样:

function concatArray(array1, array2) {
    console.log(array1.concat(array2));
}
  • 如何编写包含两个数组的函数? 你和你所拥有的真的很接近。您忘记了几件事:1)函数中的返回语句2)函数的调用
试着这样做:

// define our function
function concatArray(array1, array2) {
    // return two concatted arrays
    return array1.concat(array2);
}

// define our arrays
var myArray1 = [1, 3, 7];
var myArray2 = [12, 21, 42];

//invoke the function with our arrays as params and assign it to a variable
var result = concatArray(myArray1, myArray2);

//console log new results
console.log(result);

你的问题不清楚,也许你在找类似的东西

函数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);
log('array1',JSON.stringify(array1));
log('array2',JSON.stringify(array2));

log('array3',JSON.stringify(array3))您可以使用ES6中的扩展运算符

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

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

您没有在任何地方调用
concatArray
,那么为什么要定义
array1
?除了不调用
concatArray
array1
仅在函数范围内有效。它不存在于函数
concatArray
之外。这就是为什么你会出错。现在还不清楚你的函数应该做什么。您的意思是将
控制台.log
放在函数中吗?