2011-08-19 55 views
10

我有3个单独的数组,我正在寻找将它们全部加载到单个数组中。我能够使用.push()几个数组合成一个吗?是这样的可能吗?是否有可能在Javascript中链接array.push()?

var activeMembers=[];  // Active Users 
var noactiveMsg=[];  // Non-Active Users with a Pending Message 
var noactiveNomsg=[];  // Non-Active Users without a Pending Message 
var chatCenterMembers=[];   // Final Array of Chat Center Members 


chatCenterMembers.push(activeMembers).push(noactiveMsg).push(noactiveNomsg); 

有没有办法链.push()?

+4

这是什么都与jQuery做? –

+0

噢......我只是在JQUERY中做这件事......我想这可能是PHP ...类似的语法.. – Adam

+2

这并没有引起很大的意义。我认为你很困惑[JavaScript(一种编程语言)](http://en.wikipedia.org/wiki/Javascript)和[jQuery(一个JavaScript库)](http://en.wikipedia.org/wiki/) JQuery的)。 –

回答

6
chatCenterMembers.push(activeMembers,noactiveMsg,noactiveNomsg) 
+1

这将创建一个数组的数组,而不是每个数组的所有成员的一个数组。 – RobG

+0

Rob ...我听说push()比concat()更快,那是真的吗?如果是这样,可以通过推送来完成? – Adam

+0

Push将需要遍历每个数组的所有成员,所以我怀疑它会更快。可能对维护者来说更明显。 – RobG

21

您正在寻找(香草)JavaScript方法Array.concat()

返回由此数组与其他数组和/或值组成的数组组成的新数组。

例子,下面的代码:

chatCenterMembers = chatCenterMembers 
    .concat(activeMembers) 
    .concat(noactiveMsg) 
    .concat(noactiveNomsg); 
+4

我会说这正是OP的含义。 – karim79

2

你可以用,而不是.concat()做到这一点。

var chatCenterMembers=[]; 
chatCenterMembers = chatCenterMembers.concat(activeMembers, noactiveMsg, noactiveNomsg); 
1

由于在其他人已经贴吧:

var chatCenterMembers = activeMembers.concat(noactiveMsg, noactiveNomsg); 
相关问题