Ответ 1
Вы можете сделать это в простом JavaScript, используйте Array.prototype.join
:
arrayName.join(delimiter)
Я не знаю никакой функции jQuery, которая лучше.
Могу ли я взорвать массив в jQuery, как в PHP?
Вы можете сделать это в простом JavaScript, используйте Array.prototype.join
:
arrayName.join(delimiter)
Я не знаю никакой функции jQuery, которая лучше.
Как это:
[1,2,3,4].join('; ')
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);
Мы можем создать альтернативу implode в 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.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
не заканчивается.