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 implode
per 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);
Array
costruttore 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.join
non stava riconoscendo ";" come un separatore, ma sostituendolo con una virgola. Utilizzando jQuery, è possibile utilizzare $.each
per 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 substring
qualcosa 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 $.each
che non finisce.
your_array.join(';')