Відповіді:
Це можна зробити в простому 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(';')