Risposte:
Puoi farlo in semplice JavaScript, utilizzare Array.prototype.join:
arrayName.join(delimiter)
Non conosco alcuna funzione jQuery che sia migliore.
Array.joinè ciò di cui hai bisogno, ma se ti piace, le persone amichevoli di phpjs.org hanno creato implodeper te.
Quindi alcuni ranting leggermente fuori tema. Come sottolineato da @jon_darkstar, jQuery è JavaScript e non viceversa. Non è necessario conoscere JavaScript per essere in grado di capire come utilizzare jQuery, ma sicuramente non fa male e una volta che inizi ad apprezzare la riusabilità o inizi a guardare l'immagine più grande, devi assolutamente impararla.
Per riferimento futuro, se si desidera imitare il comportamento di PHP implode()quando non viene specificato alcun delimitatore (letteralmente basta unire i pezzi insieme), è necessario passare una stringa vuota in Javascript, join()altrimenti per impostazione predefinita si usano virgole come delimitatori:
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
Utilizzare il metodo join () crea e restituisce una nuova stringa concatenando tutti gli elementi in un array.
Esempio funzionante
var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
Possiamo creare un'alternativa di implode in 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);
Arraycostruttore al posto dei letterali è inutilmente dettagliato. Se desideri disperatamente ricreare la funzione di implosione, la cosa intelligente sarebbe avvolgere il metodo di join incorporato con la tua funzione. La cosa più intelligente è imparare la lingua in cui stai programmando.
array.joinnon stava riconoscendo ";" come un separatore, ma sostituendolo con una virgola. Utilizzando jQuery, è possibile utilizzare $.eachper implodere un array (si noti che output_saved_json è l'array e tmp è la stringa che memorizzerà l'array imploso):
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
Ho usato la sottostringa per rimuovere l'ultimo ";" aggiunto alla finale senza necessità. Ma se preferisci, puoi usare invece substringqualcosa del tipo:
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;
Penso che quest'ultima soluzione sia più lenta della prima perché deve verificare se l'indice è diverso dalla lunghezza dell'array ogni volta $.eachche non finisce.
your_array.join(';')