Respostas:
Você pode fazer isso em JavaScript simples, use Array.prototype.join
:
arrayName.join(delimiter)
Eu não conheço nenhuma função jQuery que seja melhor.
Array.join
é o que você precisa, mas se quiser, as pessoas amigáveis do phpjs.org criaram implode
para você.
Em seguida, algumas discussões um pouco fora de tópico. Como o @jon_darkstar já apontou, o jQuery é JavaScript e não vice-versa. Você não precisa saber JavaScript para entender como usar o jQuery, mas certamente não dói e, quando você começa a apreciar a reutilização ou começa a olhar para a imagem maior, precisa absolutamente aprendê-la.
Para referência futura, se você quiser imitar o comportamento do PHP implode()
quando nenhum delimitador for especificado (literalmente, apenas juntar as peças), você precisará passar uma string vazia para o Javascript, join()
caso contrário, usará vírgulas como delimitadores:
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
O método join () cria e retorna uma nova string concatenando todos os elementos em uma matriz.
Exemplo de trabalho
var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
Podemos criar alternativa de implode de em 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
construtor em vez de literais é desnecessariamente detalhado. Se você está desesperado para recriar a função implode, o mais inteligente seria envolver o método de junção incorporado com sua própria função. A coisa mais inteligente é para aprender o idioma que você está programando.
array.join
não estava reconhecendo ";" como um separador, mas substituindo-o por vírgula. Usando o jQuery, você pode usar $.each
para implodir uma matriz (observe que output_saved_json é a matriz e tmp é a string que armazenará a matriz implodida):
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
Eu usei substring para remover o último ";" adicionado na final sem necessidade. Mas se você preferir, pode 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;
Penso que esta última solução é mais lenta que a 1ª porque precisa verificar se o índice é diferente do comprimento da matriz sempre $.each
que não termina.
your_array.join(';')