2017-05-29 50 views
0

使用Array.prototype.concat(),当我写这篇文章的代码:的JavaScript concat方法

var g = [1, 11, 111]; 
 
var ga = [12, 122, 1222]; 
 
var gb = [13, 133, 1333]; 
 

 
var gc = g.concat(ga, [123, gb]); 
 

 
console.log(gc);

它给了我以下结果:[1, 11, 111, 12, 122, 1222, 123, Array(3)]

为什么Array(3)加入到得到的阵列?

+0

什么结果你希望得到? – nacho

+0

[1,11,111,12,122,1222,123,13,133,1333] –

+0

看看如果[123]不是数组,那么为什么[13,133,1333]被表示为数组 –

回答

0

数组中的值之一是一个数组,其中包含三个项目,您正在使用一种工具查看数据,该数据可以为您提供数据摘要而不是完全展开的视图。

1

[123,gb]不Concat的阵列,它是一个数组的一个数组里面,你要的是这样的:

var g = [1,11,111]; 
 

 
var ga = [12,122,1222]; 
 

 
var gb = [13,133,1333]; 
 

 
var gc = g.concat(ga,[123].concat(gb)); 
 
//or better 
 
var gc2 = g.concat(ga, 123, gb); 
 
console.log(gc, gc2);

+0

,那么输出应该是[1,11,111,12,122,122,Array (1),数组(3)]仪式? –

+0

不,它会[1,11,111,12,122,1222,123,13,133,1333] –

+1

thankew我得到了答案.. –

1

使用ES6风格的语法spread

var g = [1,11,111]; 
 

 
var ga = [12,122,1222]; 
 

 
var gb = [13,133,1333]; 
 

 
var gc = [...g,...ga,123,...gb]; 
 

 
console.log(gc);

0

这会帮助你!

var g = [1,11,111]; 
 

 
var ga = [12,122,1222]; 
 

 
var gb = [13,133,1333]; 
 

 
var gc = g.concat(ga,123,gb); 
 

 
     
 
console.log(gc);