Sebelum Pendahuluan, Lemparkan pertanyaan: Bagaimana cara menggabungkan beberapa array ke dalam satu array?
Sesi berbagi berikut dibagi menjadi subbagian berikut:
1. Pengantar Dasar Metode Concat
2. Rasakan metode concat dari contoh
1. Pengantar Dasar Metode Concat
Metode CONCAT digunakan untuk menggabungkan beberapa array. Ini menambahkan anggota array baru ke akhir array asli, dan kemudian mengembalikan array baru, array asli tetap tidak berubah.
console.log ([]. concat ([1], [2], [3])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]])); // [1], [2], [3]] Console.log ([]. Concat (4, [[5,6], [7]])); // [4, [5, 6], [7]]
Dalam kode di atas, nilai pengembalian pertama adalah untuk menggabungkan array kosong dengan tiga array [1], [2], [3] menjadi array, sehingga kembali [1, 2, 3]. Yang kedua adalah menggabungkan array kosong dengan nomor dua dimensi. Anggota array dua dimensi adalah [1], [2], [3], jadi [[1], [2], [3]] dikembalikan. Perhatikan bahwa array dua dimensi yang dikembalikan. Contoh ketiga adalah sama. Pemahaman konsep sangat penting di sini, yaitu menambahkan anggota array baru ke ekor array asli.
Selain menerima array sebagai parameter, CONDAT juga dapat menerima jenis nilai lain sebagai parameter. Mereka akan digunakan sebagai elemen baru, menambahkan akhir dari array.
Console.log ([]. Concat (1,2,3)); // [1,2,3]; // setara dengan console.log ([]. Concat (1, [2,3]))); // [1,2,3]; Console.log ([]. Concat ([1], [2,3])); // [1,2,3];
Meskipun ada lebih sedikit konten di sini, terlihat cukup sederhana. Tapi itu benar -benar tidak mudah dimengerti.
2. Rasakan metode concat dari contoh
Setelah berbicara tentang pengetahuan dasar, izinkan saya menunjukkan pertanyaan yang saya temui baru -baru ini. Judul aslinya seperti ini.
Anda dapat melihat apa artinya dengan melihat contoh -contohnya.
Salah satu solusi untuk pertanyaan ini adalah:
var flatten = function (arr) {return [] .concat.Apply ([], arr);};Fungsi sederhana ini dapat mewujudkan fungsi penggabungan elemen dalam array. Tetapi ketika saya memahami nilai pengembalian ini, muncul masalah.
Pertanyaan: Mengapa ada perbedaan antara menggunakan metode Apply dan tidak menggunakan metode Apply?
Console.log ([]. Concat.Apply ([], [[1], [2], [3]])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]]
Dalam kode di atas, array baru juga ditambahkan ke ekor dalam array kosong, dan yang pertama kembali [1,2,3]. Yang kedua adalah array dua dimensi.
Setelah beberapa periode melemparkan dan mengejar, saya akhirnya memahami alasan yang berbeda.
Pertama, ketika kita memanggil metode instance CONDAT dalam array kosong, kita melewati parameter di concat dan mendorong ke ujung array. Artinya, array kosong digabungkan dengan array terluar dari array yang dilewatkan, dan kemudian array baru dikembalikan.
Console.log ([]. Concat (1,2,3)); // [1, 2, 3] console.log ([]. Concat ([1], [2], [3])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]])); // [1], [2], [3]] Console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]]]
Dalam kode di atas, secara bertahap berubah dari beberapa array menjadi array satu dimensi, array dua dimensi, dan array tiga dimensi.
Dalam penjelasan terperinci dan ringkasan artikel panggilan, berlaku, dan mengikat metode dalam JavaScript, disebutkan bahwa fungsi metode Apply mirip dengan metode panggilan, dan juga mengubah poin ini (ruang lingkup di mana fungsi dijalankan), dan kemudian memanggil fungsi dalam ruang lingkup yang ditentukan. Fungsi ini juga akan segera dieksekusi. Satu -satunya perbedaan adalah bahwa ia menerima array sebagai argumen ketika fungsi dieksekusi.
Parameter pertama dari metode Apply juga merupakan objek yang ingin ditunjukkan oleh ini. Jika diatur ke nol atau tidak terdefinisi atau ini, itu setara dengan menentukan objek global. Parameter kedua adalah sebuah array, dan semua anggota array digunakan sebagai parameter pada gilirannya, dan fungsi asli dilewatkan saat dipanggil. Parameter fungsi asli harus ditambahkan satu per satu dalam metode panggilan, tetapi dalam metode Apply, mereka harus ditambahkan sebagai array.
Console.log ([]. Concat.Apply ([], [[1], [2], [3]])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]]
Seperti yang dapat dilihat dari kode, potongan kode pertama memanggil metode CONDAT terlebih dahulu pada array kosong. Fungsi metode ini adalah menambahkan anggota array baru ke akhir array asli. Metode Apply dipanggil lagi, dan parameter pertama dilewatkan, menentukan ruang lingkup objek yang dieksekusi. Fungsi parameter kedua adalah untuk melewati semua anggota array sebagai parameter pada satu waktu dan meneruskannya ke array ketika dipanggil.
Oleh karena itu, ketika metode CONDAT dan APLIKE digunakan pada saat yang sama, fungsi kedua metode akan ditumpangkan, yang merupakan fenomena yang berbeda dari menggunakan CONDAT saja. Mari kita lihat contohnya.
console.log ([]. concat ([1,2,3])); // [1, 2, 3] Console.log ([]. Concat.Apply ([], [[1], [2], [3]])); // [1, 2, 3] console.log ([]. Concat ([[1], [2], [3]])); // [1], [2, [3]] console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]] Console.log ([]. Concat ([[1], [2], [3]])); // [[1], [2], [3]] Console.log ([]. Concat ([[1], [2], [3]]])); // [[1], [2], [3]] Console.log ([]. Concat ([[1], [2], [2], [3]]] Console.log ([]. Concat.Apply ([], [[1], [2], [3]]])));//[[[1], [[1], [2], [3]]])))); [3]]]
Dalam kode di atas, metode CONDAT menggabungkan angka terbanyak, dan kemudian menggabungkan array layer berikutnya berdasarkan penggabungan.
Console.log ([]. Concat.Apply ([], [[1], [2], [3]])); // [1, 2, 3] // setara dengan console.log ([]. Concat (1,2,3)); // [1,2,3]
Meringkaskan:
1. Saat menggunakan metode CONCAT saja, anggota array baru akan ditambahkan ke akhir array asli.
2. Saat menggunakan metode Apply untuk menentukan pointer dari metode CONDAT ini, fungsi kedua metode akan ditumpangkan.
3. Metode untuk menggabungkan elemen array:
var flatten = function (arr) {return [] .concat.Apply ([], arr);}; var flatten = function (array) {return array.reduce (function (a, b) {return a.concat (b);}, [])}Di atas adalah metode penggabungan array menggunakan metode CONCAT yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!