Javascript数组连接
我有三个变量a,b和c。我必须将它们插入一个名为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]
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);