Javascript数组连接

Javascript数组连接,javascript,arrays,concatenation,Javascript,Arrays,Concatenation,我有三个变量a,b和c。我必须将它们插入一个名为arr的数组中。调用函数单击时,这些变量应被推入arr数组。例如,如果我用arg 1,2和3调用click,那么数组应该是[1,2,3],现在当我传递args 6,7时,那么数组应该是[1,2,3,6,7]。 在下面的代码中,我尝试使用concat方法来获得所需的结果,但没有成功。有什么方法可以解决这个问题吗 功能点击(a、b、c){ var A=A; var B=B; var C=C; var arr=[] var newArr=[A,B,C]

我有三个变量a,b和c。我必须将它们插入一个名为
arr
的数组中。调用函数单击时,这些变量应被推入
arr
数组。例如,如果我用arg 1,2和3调用click,那么数组应该是[1,2,3],现在当我传递args 6,7时,那么数组应该是[1,2,3,6,7]。 在下面的代码中,我尝试使用
concat
方法来获得所需的结果,但没有成功。有什么方法可以解决这个问题吗

功能点击(a、b、c){
var A=A;
var B=B;
var C=C;
var arr=[]
var newArr=[A,B,C]
阿尔·康卡特(纽阿尔);
控制台日志(arr);
}
点击(10,11,12);

点击(12,13,14)在函数外部声明一个全局数组,然后将值推入其中

var arr=[];
功能点击(a、b、c){
arr.push(a、b、c)
}
点击(10,11,12);
点击(12,13,14);

控制台日志(arr)代码的问题在于,您连接到数组,但不考虑返回值

arr = arr.concat(newArr);
然后声明数组全局以保存每次单击的值。

功能点击(arr、a、b、c){
arr.push(a、b、c);
控制台日志(arr);
}
var-arr=[];
单击(arr、10、11、12);

单击(arr、12、13、14)首先。您应该在函数外部定义
arr
,或者将
arr
作为参数传递到函数中。
第二个。函数
concat
返回串联数组,并保持原始数组不变。因此,您需要类似于
arr=arr.concat(newArr)

的内容,这里的问题是concat函数返回一个包含以下元素的新数组实例:


如果您不希望您的
arr
超出您的功能范围,另一种方法是将您的
arr
存储在
内,单击
范围,然后在任何地方调用它(它不会污染您的全局范围):

let click=(函数(arr){
返回函数(a、b、c){
var A=A;
var B=B;
var C=C;
var newArr=[A,B,C]
arr=arr.concat(newArr);
控制台日志(arr);
}
})([])
点击(10,11,12);
点击(12,13,14)可用于在功能上连接
变量
带有
数组

有关实际示例,请参见下文

//输入。
常量输入=[1,2,3]
//点击。
常量单击=(数组,…参数)=>[…数组,…参数]
//输出。
常量输出=单击(输入,4,5,6)
//证明。

console.log(output)
您应该在函数click之外声明变量'arr'。您可以使用arr.push(newArr);这是插入数组的另一种方法。仍然不起作用“:(@AlauddinAhmed我得到[[10,11,12],[12,13,14]…不是[10,11,12,12,13,14]:(你可以执行arr.push(a,b,c)同样,你不需要将它们分配给另一个变量或数组。
    function click(a,b,c){

        var A=a;
        var B=b;
        var C=c;

        var arr=[]
        var newArr=[A,B,C]
        arr = arr.concat(newArr);
        // concat does not change the ref itself
        console.log(arr);

    }

click(10,11,12);
click(12,13,14);