Разрушить массив с помощью jQuery / Javascript - PullRequest
261 голосов
/ 10 ноября 2010

Можно ли внедрить массив в jQuery, как в PHP?

Ответы [ 7 ]

523 голосов
/ 10 ноября 2010

Вы можете сделать это простым JavaScript, используя Array.prototype.join:

arrayName.join(delimiter)

Я не знаю ни одной функции jQuery, которая лучше.

58 голосов
/ 10 ноября 2010

Как это:

[1,2,3,4].join('; ')
27 голосов
/ 10 ноября 2010

Array.join - это то, что вам нужно, но, если хотите, дружелюбные люди на phpjs.org создали для вас implode.

Тогда немного не по теме разглагольствования. Как отметил @jon_darkstar alreadt, jQuery - это JavaScript, а не наоборот. Вам не нужно , чтобы знать JavaScript, чтобы понимать, как использовать jQuery, но это, безусловно, не повредит, и как только вы начнете ценить возможность многократного использования или начнете смотреть на более широкую картину, вам абсолютно необходимо изучить это.

15 голосов
/ 20 мая 2014

Для дальнейшего использования, если вы хотите имитировать поведение 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
5 голосов
/ 27 февраля 2019

Использование метод join () создает и возвращает новую строку путем объединения всех элементов в массиве.

Рабочий пример

var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);
1 голос
/ 26 сентября 2012

Мы можем создать альтернативу взрыва в 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);
0 голосов
/ 04 марта 2013

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 не заканчивается.

...