Respuestas:
Puede hacer esto en JavaScript simple, use Array.prototype.join
:
arrayName.join(delimiter)
No conozco ninguna función jQuery que sea mejor.
Array.join
es lo que necesita, pero si lo desea, la gente amable de phpjs.org lo ha creado implode
para usted.
Luego algunos despotrican un poco fuera de tema. Como @jon_darkstar ya señaló, jQuery es JavaScript y no al revés. No necesita saber JavaScript para poder entender cómo usar jQuery, pero ciertamente no duele y una vez que comience a apreciar la reutilización o comience a mirar la imagen más grande, absolutamente necesita aprenderlo.
Para referencia futura, si desea imitar el comportamiento de PHP implode()
cuando no se especifica ningún delimitador (literalmente, solo unir las piezas), debe pasar una cadena vacía a Javascript; de lo join()
contrario, el uso de comas como delimitadores es predeterminado:
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
El uso del método join () crea y devuelve una nueva cadena concatenando todos los elementos en una matriz.
Ejemplo de trabajo
var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
Podemos crear una alternativa de implosión de 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
constructor en lugar de literales es excesivamente detallado. Si está desesperado por recrear la función de implosión, lo inteligente sería envolver el método de unión incorporado con su propia función. Lo más inteligente es aprender el lenguaje en el que está programando.
array.join
no estaba reconociendo ";" cómo un separador, pero reemplazándolo con una coma. Con 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 usado la subcadena para eliminar el último ";" añadido en la final sin necesidad. Pero si lo prefiere, puede usar substring
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.
your_array.join(';')