2011-08-19 10 views
10

私は3つの別々の配列を持っており、それらをすべて1つの配列にロードしようとしています。 .push()複数の配列を1つにまとめることができますか?このようなことは可能でしょうか?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

プッシュは、各配列のすべてのメンバーを繰り返し処理する必要があるため、高速になるかどうかは疑問です。おそらくメンテナにもっと明らかです。 – RobG

21

あなたは(バニラ)JavaScriptメソッドArray.concat()を探しています。

この配列で構成される新しい配列を、他の配列および/または値と結合して返します。

例、あなたのコード以下:

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

私はこれがまさにOPが意味するものだと言います。 – karim79

2

があなたの代わりに.concat()でそれを行うことができます。他の1であるため

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

はそれを掲載している:

var chatCenterMembers = activeMembers.concat(noactiveMsg, noactiveNomsg); 
関連する問題