如何使用jQuery将一个数组添加到一个数组中的数组?

11

我有一个数组,如下:

var cString =   [
            ['1','Techdirt','www.techdirt.com'],
            ['2','Slashdot','slashdot.org'],
            ['3','Wired','wired.com']
            ];

我想要将另一个数组以相同的格式添加到这个数组中:

var test = ['4','Stackoverflow','stackoverflow.com']

我尝试使用:

var newArray = $.merge(cString, test);

但是console.log(newArray);输出:

[►Array,►Array,►Array,'4','Stackoverflow','stackoverflow.com']

所以我猜测我错过了一些显而易见的东西,或者正在尝试某些愚蠢的事情...有人能帮忙吗?

3个回答

16

不需要使用jQuery。只需使用数组的.push()方法将其添加到主数组中。

var test = ['4','Stackoverflow','stackoverflow.com']

cString.push( test );

$.merge() 的作用是遍历第二个数组,逐一将其项复制到第一个数组中。


编辑:

如果您不想修改原始数组,则可以先创建其副本,并将新的数组使用 .push() 方法添加到副本中。

var cString =   [
            ['1','Techdirt','www.techdirt.com'],
            ['2','Slashdot','slashdot.org'],
            ['3','Wired','wired.com']
            ];

var test = ['4','Stackoverflow','stackoverflow.com']

var newArray = cString.slice();

newArray.push( test );

1
嗯,console.log(newArray)现在返回4= / - David Thomas
@David - 你对此确信吗?http://jsfiddle.net/XLVxw/1/ 适当的数组length属性值应该是 4 - user113716
2
@David - 哦,我明白你在做什么了。.push() 方法修改了原始数组,并返回新的长度。这就是为什么你的 newArray 变量显示为 4 的原因。 - user113716
我相当确定 =b 而且,非常感谢你提供的 forDummies() jsfiddle演示。这真的很有用 =) +1,并已接受! - David Thomas
@David - 不用谢!我一开始应该更注意你问题中的代码。:o) - user113716

2
您可以像这样使用合并函数:
var newArray = $.merge($.merge([], cString), test);

2

除了Patrick所描述的push之外,如果您想创建一个新的列表而不是更改旧列表,可以使用Array#concat将数组相加:

var newArray= cString.concat([['4','Stackoverflow','stackoverflow.com']]);

2
请纠正我,但我认为这将给OP与$.merge相同的结果。我认为你需要做的是cString.concat([['4','Stackoverflow','stackoverflow.com']]) - user113716

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接