Odpowiedzi:
Możesz to zrobić w zwykłym JavaScript, użyj Array.prototype.join
:
arrayName.join(delimiter)
Nie znam żadnej lepszej funkcji jQuery.
Array.join
jest to, czego potrzebujesz, ale jeśli chcesz, przyjaźni ludzie z phpjs.org stworzyli implode
dla Ciebie.
Potem trochę nie na temat rantingu. Jak zauważył @jon_darkstar alreadt, jQuery jest JavaScript, a nie odwrotnie. Nie musisz znać JavaScriptu, aby zrozumieć, jak korzystać z jQuery, ale na pewno nie zaszkodzi, a kiedy zaczniesz doceniać możliwość ponownego użycia lub zaczniesz patrzeć na większy obraz, koniecznie musisz się go nauczyć.
Dla przyszłego odniesienia, jeśli chcesz naśladować zachowanie PHP, implode()
gdy nie jest określony żaden ogranicznik (dosłownie po prostu połącz elementy razem), musisz przekazać pusty ciąg do Javascript, w join()
przeciwnym razie domyślnie używa przecinków jako ograniczników:
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
Użyj metody join () tworzy i zwraca nowy ciąg, łącząc wszystkie elementy w tablicy.
Przykład roboczy
var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
Możemy stworzyć alternatywę implode w 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
konstruktora zamiast literałów jest niepotrzebnie gadatliwe. Jeśli desperacko chcesz odtworzyć funkcję implode, sprytnie byłoby owinąć wbudowaną metodę łączenia własną funkcją. Mądrzejszą rzeczą jest nauczenie się języka, w którym programujesz.
array.join
nie rozpoznał „;” jak separator, ale zastępując go przecinkiem. Korzystając z jQuery, możesz $.each
zaimplementować tablicę (zwróć uwagę, że output_saved_json to tablica, a tmp to ciąg znaków, który będzie przechowywać tablicę implodowaną):
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
Użyłem podłańcucha do usunięcia ostatniego „;” dodane w finale bez konieczności. Ale jeśli wolisz, możesz zamiast tego użyć substring
czegoś takiego:
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;
Myślę, że to ostatnie rozwiązanie jest wolniejsze niż pierwsze, ponieważ musi za każdym razem sprawdzać, czy indeks różni się od długości tablicy, dopóki $.each
się nie kończy.
your_array.join(';')