2011-08-19 11 views
10

Tengo 3 matrices separadas y estoy buscando cargarlas todas en una sola matriz. ¿Puedo usar .push() varias matrices en una? Es algo como esto posible?¿Es posible encadenar array.push() en Javascript?

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); 

¿Hay alguna manera de encadenar .push()?

+4

¿Qué tiene esto que ver con jQuery? –

+0

Oh ... Estoy haciendo esto en JQUERY ... Supongo que podría ser PHP ... sintaxis similar ... – Adam

+2

Eso no tiene mucho sentido. Creo que confundes [JavaScript (un lenguaje de programación)] (http://en.wikipedia.org/wiki/Javascript) y [jQuery (una biblioteca de JavaScript)] (http://en.wikipedia.org/wiki/ JQuery). –

Respuesta

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

Eso creará una matriz de matrices, no una matriz de todos los miembros de cada matriz. – RobG

+0

Rob ... He oído que push() es más rápido que concat() ¿es así? si es así, ¿se puede hacer con push? – Adam

+0

Push tendría que iterar sobre todos los miembros de cada matriz, por lo que dudo que sea más rápido. Sin embargo, probablemente sea más obvio para los mantenedores. – RobG

21

Usted está buscando el método de JavaScript (vainilla) Array.concat().

Devuelve una nueva matriz compuesta por esta matriz unida a otra matriz y/o valor (es).

ejemplo, a raíz de su código:

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

Diría que esto es exactamente lo que significa OP. – karim79

2

Usted puede hacerlo en su lugar con .concat().

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

Desde el otro ha publicado que:

var chatCenterMembers = activeMembers.concat(noactiveMsg, noactiveNomsg); 
Cuestiones relacionadas