Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用concat()方法组合多个数组 函数joinArrayOfArrays(arr){ var startingArray=arr[0]; var newArray=[]; 对于(var i=0;i[1,4,真,假,'x'_Javascript - Fatal编程技术网

Javascript 使用concat()方法组合多个数组 函数joinArrayOfArrays(arr){ var startingArray=arr[0]; var newArray=[]; 对于(var i=0;i[1,4,真,假,'x'

Javascript 使用concat()方法组合多个数组 函数joinArrayOfArrays(arr){ var startingArray=arr[0]; var newArray=[]; 对于(var i=0;i[1,4,真,假,'x',javascript,Javascript,我想循环一个for循环,并使用concat()方法将结果编译成单个数组。我想不出有什么帮助?您可以使用array\flat function joinArrayOfArrays(arr) { var startingArray = arr[0]; var newArray = []; for(var i=0; i<arr.length; i++) { newArray = startingArray.concat(arr[i]); } return newA

我想循环一个for循环,并使用concat()方法将结果编译成单个数组。我想不出有什么帮助?

您可以使用
array\flat

function joinArrayOfArrays(arr) {
  var startingArray = arr[0];
  var newArray = [];

 for(var i=0; i<arr.length; i++) {
   newArray = startingArray.concat(arr[i]);
  
 }

  return newArray;
}

var output = joinArrayOfArrays([[1, 4], [true, false], ['x', 'y']]);
console.log(output); // --> [1, 4, true, false, 'x'


选项一是将数组分解为
concat
,因为concat可以接受多个参数:

函数joinArrayOfArrays(arr){
返回[]concat(…arr);
}
选项二将应用于您的阵列:

函数joinArrayOfArrays(arr){
返回平面角();
}

问题在于每次重新分配
新数组
,这样就不起作用了。只需完全删除
启动数组
,它就会起作用:

函数joinArrayOfArrays(arr){
var newArray=[];

对于(var i=0;我喜欢中提到的,或者也喜欢中提到的.concat(…arr)

尽可能少地修改代码工作正常的解决方案是:

[[1, 4], [true, false], ['x', 'y']].flat()

//(6) [1, 4, true, false, "x", "y"]
函数joinArrayOfArrays(arr){
var newArray=[];
对于(var i=0;i[1,4,真,假,“x”,“y”]

另一种有效的方法是使用
arr.flat()

你刚刚把变量搞混了。
newArray=startingArray.concat(arr[i])
应该是
newArray=newArray.concat(arr[i])
(当然你根本不需要
startingArray
,它在循环的第一次迭代中处理。)当然。@SebastianSimon:但这个问题是在尝试生成函数,而不是找出要使用什么函数。@LakshyaRaj关于这个问题有83个答案;其中一些还使用
进行
循环。@SebastianSimon:哦,我明白了。将标记为重复。
function joinArrayOfArrays(arr) {
  var newArray = [];

 for(var i=0; i<arr.length; i++) {
   console.log(arr[i])
   newArray = newArray.concat(arr[i]);
  
 }

  return newArray;
}

var output = joinArrayOfArrays([[1, 4], [true, false], ['x', 'y']]);
console.log(output);//->[1, 4, true, false, "x", "y"]