Відповіді:
Це можна зробити в простому JavaScript, використовуйте Array.prototype.join:
arrayName.join(delimiter)
Я не знаю жодної функції jQuery, яка була б кращою.
Array.joinце те, що вам потрібно, але якщо вам подобається, доброзичливі люди на phpjs.org створили implodeдля вас.
Потім кілька зйомок, що не стосуються теми. Як зазначав @jon_darkstar alreadt, jQuery - це JavaScript, а не навпаки. Вам не потрібно знати JavaScript, щоб можна було зрозуміти, як користуватися jQuery, але це, звичайно, не зашкодить, і як тільки ви почнете цінувати багаторазове використання або почати дивитися на більшу картину, вам абсолютно потрібно її вивчити.
Для подальшої довідки, якщо ви хочете імітувати поведінку PHP, implode()коли не вказаний роздільник (буквально просто з'єднайте шматки разом), вам потрібно передати порожній рядок у Javascript, join()інакше він за замовчуванням використовує коми як роздільники:
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
Використовуйте метод join () створює та повертає нову рядок шляхом об'єднання всіх елементів у масив.
Робочий приклад
var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
Ми можемо створити альтернативу імплодею в 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конструктора замість літералів зайве багатослівне. Якщо ви відчайдушно відтворюєте функцію implode, розумною річчю було б обгорнути вбудований метод з'єднання власною функцією. Розумніше - вивчити мову, якою ви програмуєте.
array.joinне розпізнавав ";" як роздільник, але замінивши його комою. Використовуючи jQuery, ви можете використовувати $.eachдля імплодування масиву (зауважте, що output_saved_json - це масив, а tmp - рядок, який буде зберігати імплодований масив):
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
Я використовував підрядку для видалення останнього ";" додається у фіналі без необхідності. Але якщо вам зручніше, ви можете використовувати натомість substringщось на кшталт:
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;
Я думаю, що це останнє рішення є більш повільним, ніж перше, тому що йому потрібно перевіряти, чи індекс відрізняється від довжини масиву кожен раз, поки $.eachне закінчуються.
your_array.join(';')