Menanamkan array dengan jQuery / Javascript?

279

Bisakah saya memasukkan array dalam jQuery seperti di PHP?

Akhir
sumber

Jawaban:

546

Anda dapat melakukan ini dalam JavaScript biasa, gunakan Array.prototype.join:

arrayName.join(delimiter)

Saya tidak tahu fungsi jQuery yang lebih baik.

jon_darkstar
sumber
4
Bisakah kekuatan moderator menerima jawaban ini atau bagaimana membuatnya sampai ke puncak? Saya melewatkan jawaban ini awalnya membaca ini.
PressingOnAlways
62

Seperti ini:

[1,2,3,4].join('; ')
mikerobi
sumber
28

Array.joinadalah apa yang Anda butuhkan, tetapi jika Anda suka, orang-orang yang ramah di phpjs.org telah membuatkan implodeuntuk Anda.

Kemudian beberapa topik yang agak off mengomel. Seperti yang ditunjukkan @jon_darkstar, jQuery adalah JavaScript dan bukan sebaliknya. Anda tidak perlu tahu JavaScript untuk bisa memahami cara menggunakan jQuery, tetapi tentu saja tidak ada salahnya dan begitu Anda mulai menghargai penggunaan kembali atau mulai melihat gambar yang lebih besar Anda benar-benar perlu mempelajarinya.

nikc.org
sumber
23
sekali lagi, javascript ADALAH plugin jQuery favorit saya ;-)
jon_darkstar
16

Untuk referensi di masa mendatang, jika Anda ingin meniru perilaku PHP implode()ketika tidak ada pembatas yang ditentukan (secara harfiah cukup gabungkan potongan-potongan itu), Anda perlu memasukkan string kosong ke Javascript join()jika tidak defaultnya menggunakan koma sebagai pembatas:

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
Robbie Averill
sumber
10

Gunakan metode join () membuat dan mengembalikan string baru dengan menggabungkan semua elemen dalam sebuah array.

Contoh kerja

var arr= ['A','b','C','d',1,'2',3,'4'];
var res= arr.join('; ')
console.log(res);

Deepu Reghunath
sumber
1

Kita dapat membuat alternatif implode dalam 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);
Vijay Verma
sumber
12
Buku teks hal-hal yang tidak boleh dilakukan. Jangan melakukan penggabungan string dalam satu lingkaran. Jangan ganti fungsi bawaan cepat dengan kode Anda sendiri yang lambat. Menggunakan Arraykonstruktor alih-alih literal tidak perlu dilakukan secara verbal. Jika Anda ingin membuat ulang fungsi implode, hal yang cerdas adalah membungkus metode join built-in dengan fungsi Anda sendiri. Yang lebih cerdas adalah mempelajari bahasa tempat Anda pemrograman.
mikerobi
0

array.jointidak mengenali ";" bagaimana pemisah, tetapi menggantinya dengan koma. Menggunakan jQuery, Anda dapat menggunakan $.eachuntuk memasukkan array (Perhatikan bahwa output_saved_json adalah array dan tmp adalah string yang akan menyimpan array yang meledak):

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

Saya telah menggunakan substring untuk menghapus yang terakhir ";" ditambahkan di final tanpa perlu. Tetapi jika Anda mau, Anda bisa menggunakan substringsesuatu seperti:

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;

Saya pikir solusi terakhir ini lebih lambat dari yang pertama karena perlu memeriksa apakah indeks berbeda dari panjang array setiap kali sementara $.eachtidak berakhir.

jaysponsored
sumber
Jika Anda mendapatkan ',' bukannya ';' Anda lupa untuk melewati pembatas ke metode bergabung. Cobayour_array.join(';')
mikerobi
Saya mencobanya pada waktu itu tetapi tidak berhasil di IE (saya tidak ingat versi tepatnya, tapi saya pikir itu IE6). Saya perlu mendukungnya pada waktu itu (aplikasi Enterprise ...). Di browser yang lebih baru, catatan Anda mungkin masuk akal. Terima kasih atas catatannya Mike dan terima kasih untuk downvote SEBELUM bertanya MENGAPA saya telah menggunakan metode ini.
jaysponsored
1
Parameter bergabung bekerja di IE 4, 5, 5.5, 6+. Saya tidak mungkin bekerja di IE3 tapi saya tidak bisa mendapatkan salinan untuk menjalankan JavaScript apa pun, jadi saya tidak bisa menguji.
mikerobi
Ya itu berhasil. Tetapi tidak dengan ";". Bergabung tapi menggantikan ";" dengan ",", setidaknya pada Server 2003.
jaysponsored