Array Ekstra di JavaScript
mata utama
- Fungsi lanjutan array dalam JavaScript adalah fungsi yang memudahkan banyak butiran bekerja dengan tatasusunan, meningkatkan kebolehbacaan kod dengan menggantikan gelung kompleks dengan panggilan fungsi. Mereka termasuk kaedah seperti
- ,
forEach()
,map()
,filter()
,every()
,some()
,reduce()
,reduceRight()
,indexOf()
,lastIndexOf()
dan . -
Kaedah
forEach()
menghapuskan keperluan untuk gelung dan notasi subskrip array dengan memanggil fungsi panggil balik pada setiap elemen dalam array. Walau bagaimanapun, ia boleh menyebabkan kemerosotan prestasi kerana memanggil fungsi untuk setiap elemen. -
Fungsi
map()
forEach()
adalah serupa denganfilter()
, tetapi ia mengembalikan array yang mengandungi nilai -nilai yang dikembalikan oleh fungsi panggil balik. Kaedah juga mengembalikan pelbagai nilai, tetapi ia berdasarkan nilai pulangan fungsi panggil balik yang harus mengembalikan nilai boolean. -
Kaedah
reduce()
reduceRight()
memproses setiap elemen dalam array, mengira nilai tunggal, manakalaindexOf()
berfungsi dengan cara yang sama, tetapi bermula pada akhir array. KaedahlastIndexOf()
mencari unsur -unsur tertentu dalam array, dan juga melakukan perkara yang sama, tetapi memulakan pencarian dari akhir array.
latar belakang
for
Hampir semua operasi array dilakukan dengan melintasi setiap elemen array satu demi satu. Sebagai contoh, kod berikut menggunakan gelung
var foo = ["a", "b", "c", "d"]; for (var i = 0, len = foo.length; i < len; i++) { console.log(foo[i]); }
Pertama dan yang paling penting, anda harus memahami bahawa contoh sebelumnya adalah kod JavaScript yang sah. Walau bagaimanapun, jika anda mempunyai beberapa gelung kompleks, pembolehubah penjejakan boleh menjadi membosankan. Fungsi pelanjutan array membolehkan kami menggantikan keseluruhan gelung dengan panggilan fungsi, yang biasanya dapat meningkatkan kebolehbacaan kod. Sekarang, mari kita lihat pelbagai fungsi lanjutan array.
foreach ()
forEach()
Seperti banyak fungsi lanjutan array, kaedah adalah fungsi yang lebih tinggi fungsi-fungsi yang menerima fungsi lain sebagai parameter. forEach()
Daripada melintasi elemen array, fungsi panggil balik dipanggil pada setiap elemen dalam urutan. Fungsi panggil balik menerima tiga parameter -elemen array semasa, indeks array, dan array itu sendiri. Dalam kod berikut, contoh asal telah ditulis semula untuk menggunakan kaedah forEach()
.
var foo = ["a", "b", "c", "d"]; for (var i = 0, len = foo.length; i < len; i++) { console.log(foo[i]); }
Perhatikan bahawa menggunakan forEach()
menghapuskan keperluan untuk notasi Loop dan Array Subscript. Di samping itu, sejak JavaScript menggunakan skop peringkat fungsi, fungsi panggilan balik forEach()
menyediakan skop baru yang membolehkan penggunaan semula nama berubah. Satu -satunya kelemahan adalah kehilangan prestasi yang ditanggung dengan memanggil fungsi untuk setiap elemen dalam array. Nasib baik, kerugian ini sering diabaikan. Juga ambil perhatian bahawa anda boleh lulus parameter pilihan ke forEach()
selepas fungsi panggil balik. Jika ada, parameter kedua mentakrifkan nilai this
yang digunakan dalam fungsi panggil balik.
peta ()
Fungsi map()
hampir sama dengan forEach()
. Satu -satunya perbezaan ialah map()
mengembalikan array yang mengandungi nilai yang dikembalikan oleh fungsi panggil balik. Sebagai contoh, kod berikut menggunakan map()
untuk mengira akar kuadrat setiap item dalam array input. Kemudian kembalikan hasilnya sebagai array dan paparkannya. Juga ambil perhatian bahawa fungsi lanjutan array bersesuaian dengan fungsi JavaScript terbina dalam seperti Math.sqrt()
.
["a", "b", "c", "d"].forEach(function(element, index, array) { console.log(element); });
penapis ()
seperti forEach()
dan map()
, kaedah filter()
menerima fungsi panggilan balik dan pilihan this
pilihan. Dan, seperti map()
, filter()
mengembalikan pelbagai nilai berdasarkan nilai pulangan fungsi panggil balik. Perbezaannya ialah fungsi panggil balik filter()
harus mengembalikan nilai boolean. Jika nilai pulangan adalah benar, tambahkan elemen array ke array hasil. Sebagai contoh, kod berikut membuang sebarang elemen dalam array asal yang tidak bermula dengan huruf x. Dalam contoh ini, ungkapan biasa (diluluskan sebagai nilai this
) akan diuji untuk setiap elemen array.
var sqrts = [1, 4, 9, 16, 25].map(Math.sqrt); console.log(sqrts); // 显示 "[1, 2, 3, 4, 5]"
setiap () dan beberapa ()
Fungsi every()
dan some()
juga menjalankan fungsi panggil balik pada setiap elemen array. Jika setiap fungsi panggil balik kembali benar, every()
mengembalikan benar, jika tidak palsu. Begitu juga, jika sekurang -kurangnya satu fungsi panggil balik kembali benar, some()
kembali benar. Dalam contoh berikut, every()
dan some()
digunakan untuk menguji sama ada elemen array kurang daripada lima. Dalam kes ini, every()
mengembalikan palsu kerana elemen terakhir adalah sama dengan lima. Walau bagaimanapun, some()
kembali benar kerana sekurang -kurangnya satu elemen kurang daripada lima. Perhatikan bahawa parameter indeks dan array wujud, tetapi telah ditinggalkan dari fungsi panggil balik, kerana ia tidak diperlukan dalam contoh ini.
["x", "abc", "x1", "xyz"].filter(RegExp.prototype.test, /^x/);
Kurangkan () dan reduceright ()
Kaedah reduce()
memproses setiap elemen dalam array (bermula dari awal) dan mengira satu nilai. reduce()
lebih suka fungsi panggil balik dan nilai permulaan pilihan sebagai parameter. Jika tiada nilai awal wujud, elemen array pertama digunakan. reduce()
Fungsi panggil balik adalah berbeza dari fungsi panggilan balik lain yang telah kita lihat setakat ini kerana ia menerima empat parameter -nilai sebelumnya, nilai semasa, indeks, dan array. Contoh umum operasi reduce
adalah untuk menambah semua nilai array. Contoh berikut betul -betul ini. Apabila fungsi panggil balik dipanggil untuk kali pertama, previous
sama dengan 1 dan current
sama dengan 2. Dalam panggilan berikutnya, jumlah itu berkumpul ke nilai akhir 15.
var foo = ["a", "b", "c", "d"]; for (var i = 0, len = foo.length; i < len; i++) { console.log(foo[i]); }
reduceRight()
berfungsi dengan cara yang sama seperti reduce()
, kecuali bahawa proses bermula dari akhir array dan bergerak ke arah permulaan.
indexOf () dan lastIndexof ()
Kaedah indexOf()
mencari elemen tertentu dalam array dan mengembalikan indeks perlawanan pertama. Jika tiada perlawanan dijumpai, indexOf()
pulangan -1. indexOf()
sila elemen yang akan dicari sebagai parameter pertama. Parameter pilihan kedua menentukan indeks permulaan carian. Sebagai contoh, kod berikut mencari dua kejadian pertama huruf Z dalam array. Untuk mencari penampilan kedua, kita hanya perlu mencari penampilan pertama dan mula mencari semula selepas itu.
["a", "b", "c", "d"].forEach(function(element, index, array) { console.log(element); });
lastIndexOf()
berfungsi dengan cara yang sama, kecuali ia mula mencari dari akhir array.
Kesimpulan
Gunakan fungsi lanjutan array untuk menulis kod ringkas dan jelas. Malangnya, beberapa pelayar yang lebih tua tidak menyokong kaedah ini. Walau bagaimanapun, anda boleh mengesan kaedah ini dengan memeriksa objek Array.prototype
(iaitu Array.prototype.forEach
). Jika kaedah hilang, anda boleh dengan mudah memberikan pelaksanaan anda sendiri.
(bahagian Soalan Lazim harus ditambah di sini, kandungannya sama dengan bahagian FAQ dalam teks input, tetapi pengubahsuaian pseudo-asal yang sepadan, seperti menyesuaikan perintah pernyataan, menggantikan sinonim, dan sebagainya)
Atas ialah kandungan terperinci Array Ekstra di JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.
