w3schools tag tab style page for color javascript jquery implode

tag - ¿Implode una matriz con jQuery/Javascript?



title of page html (6)

¿Puedo implosionar una matriz en jQuery como en PHP?


Me gusta esto:

[1,2,3,4].join(''; '')


Para futuras referencias, si desea imitar el comportamiento de implode() de PHP cuando no se especifica un delimitador (literalmente, simplemente unir las piezas), debe pasar una cadena vacía a join() Javascript, de lo contrario, el uso de comas como delimitadores por defecto :

var bits = [''H'', ''e'', ''l'', ''l'', ''o'', '' '', ''W'', ''o'', ''r'', ''l'', ''d'']; alert(bits.join()); // H,e,l,l,o, ,W,o,r,l,d alert(bits.join('''')); // Hello World


Podemos crear alternativas de implosión en javascript:

function my_implode_js(separator,array){ var temp = ''''; for(var i=0;i<array.length;i++){ temp += array[i] if(i!=array.length-1){ temp += separator ; } }//end of the for loop return temp; }//end of the function var array = new Array("One", "Two", "Three"); var str = my_implode_js(''-'',array); alert(str);


Array.join es lo que necesita, pero si lo desea, las personas amigables de phpjs.org han creado implode para usted.

Luego, un poco fuera de tema ranting. Como señaló @ jon_darkstar alreadt, jQuery es JavaScript y no al revés. No necesitas saber JavaScript para poder entender cómo usar jQuery, pero ciertamente no duele y una vez que comiences a apreciar la reutilización o comiences a ver la imagen más grande que necesitas para aprenderla.


array.join no estaba reconociendo ";" Como un separador, pero reemplazándolo con coma. Usando jQuery, puede usar $.each para implosionar una matriz (tenga en cuenta que output_saved_json es la matriz y tmp es la cadena que almacenará la matriz implosionada):

var tmp = ""; $.each(output_saved_json, function(index,value) { tmp = tmp + output_saved_json[index] + ";"; }); output_saved_json = tmp.substring(0,tmp.length - 1); // remove last ";" added

He utilizado subcadena para eliminar el último ";" Añadido a la final sin necesidad. Pero si lo prefiere, puede usar una substring lugar de algo como:

var tmp = ""; $.each(output_saved_json, function(index,value) { tmp = tmp + output_saved_json[index]; if((index + 1) != output_saved_json.length) { tmp = tmp + ";"; } }); output_saved_json = tmp;

Creo que esta última solución es más lenta que la primera porque necesita verificar si el índice es diferente a la longitud de la matriz cada vez que $.each no termina.


Puedes hacer esto en JavaScript simple, usa Array.prototype.join :

arrayName.join(delimiter)

No conozco ninguna función de jQuery que sea mejor.