Artikel ini untuk mereka yang telah menulis var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {7 sebelumnya, tetapi tidak begitu mengerti bagaimana var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {8 atau var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {9 bekerja. Anda juga harus bisa menulis fungsi dasar. Pada akhir ini, Anda akan memiliki pemahaman lengkap tentang kedua fungsi tersebut, karena Anda akan melihat bagaimana keduanya ditulis Show
Ini diambil dari Step Up Your JS. Panduan Komprehensif untuk JavaScript Menengah, kursus online saya. Jangan ragu untuk melihatnya di sana untuk versi interaktif dari contoh kode Himpunan. petavar originalArr = [1, 2, 3, 4, 5];function timesThree(item) {8 dimaksudkan untuk mengubah satu array menjadi yang lain dengan melakukan beberapa operasi pada setiap nilainya. Larik asli dibiarkan tidak tersentuh dan fungsi mengembalikan larik baru yang telah diubah. Misalnya, kita memiliki deretan angka dan kita ingin mengalikan setiap angka dengan tiga. Kami juga tidak ingin mengubah array asli. Untuk melakukan ini tanpa var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_8, kita dapat menggunakan for-loop standar untuk-loopvar originalArr = [1, 2, 3, 4, 5]; Cukup sederhana. Mari abstrak loop ini menjadi fungsinya sendiri sehingga kita dapat mengubah larik apa pun yang kita suka menjadi larik baru dengan setiap elemen dikalikan 3. Dengan kata lain, kami mencoba untuk menulis sebuah fungsi yang akan mengambil array apa pun ( function multiplyByThree(arr) {2) dan mengeluarkan array baru dengan angkanya dikalikan tiga ( function multiplyByThree(arr) {3). Yang harus kita lakukan adalah mengambil kode yang kita tulis di atas dan mengubahnya menjadi sebuah fungsi sehingga kita dapat menggunakan kembali loop itu berulang kali. Ini mungkin tampak sulit, tetapi cobalah untuk melewatinya Kalikan dengan tigavar originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_ Cantik. Sekarang kita dapat meneruskan array apa pun ke function multiplyByThree(arr) {_4 dan mengeluarkan array baru dengan nilainya dikalikan. Sekarang, kita akan menambahkan beberapa kode yang mungkin tampak tidak berguna, tetapi tetap bersama saya di sini. Mari kita ambil satu baris dalam fungsi itu — function multiplyByThree(arr) {5 — dan mengubahnya menjadi fungsinya sendiri juga. Hasilnya akan menjadi kode yang setara dengan yang ada di blok di atas, tetapi kita akan membutuhkannya setelah ini var originalArr = [1, 2, 3, 4, 5];function timesThree(item) { Blok ini melakukan hal yang persis sama dengan yang sebelumnya. Itu hanya mengeluarkan satu bagian dan mengubahnya menjadi fungsinya sendiri Bagaimana jika kita ingin mengalikan semua item dalam array dengan 5? . Itu akan membosankan dan berulang-ulang Kalikan dengan apa sajaMari kita ubah kode function multiplyByThree(arr) {_4 agar dapat dikalikan dengan apa saja. Mari ganti namanya menjadi function multiplyByThree(arr) {_7. Ini adalah bagian tersulit dan mungkin perlu waktu untuk memahaminya, tetapi cobalah untuk melewatinya. Setelah itu, mudah Kami mengubah ini function multiplyByThree(arr) {_ Ke dalam ini function multiply(arr, multiplyFunction) { Kami telah mengganti nama fungsi dan memberinya argumen tambahan untuk diterima. Argumen itu sendiri akan menjadi fungsi (biasanya disebut sebagai panggilan balik). Sekarang, kami meneruskan fungsi ke function multiplyByThree(arr) {7 sendiri, memberi tahu function multiplyByThree(arr) {7 bagaimana kami ingin setiap item diubah. Menggunakan fungsi baru kami, mari kalikan dengan 3 lagi var originalArr = [1, 2, 3, 4, 5];function timesThree(item) { Kami memberikan fungsi function multiplyByThree(arr) {_7 instruksi yang diperlukan untuk mengubah setiap nilai dalam array dengan meneruskan fungsi function multiply(arr, multiplyFunction) {1. Bagaimana jika kita ingin mengalikan dengan 5 saja? var originalArr = [1, 2, 3, 4, 5];function timesFive(item) { Sesederhana menukar fungsi function multiply(arr, multiplyFunction) {1 untuk fungsi function multiply(arr, multiplyFunction) {3. Mengulangi teknik ini, kita dapat mengalikan dengan angka berapa pun yang kita inginkan — kita hanya menulis fungsi baru yang sangat sederhana. Kami telah menulis satu for-loop dan dapat mengalikan array dengan apa pun yang kami inginkan PetaMari buat function multiplyByThree(arr) {_7 bahkan lebih kuat. Alih-alih mengalikan dengan sesuatu, mari izinkan fungsi mengubah array kita sesuka kita. Mari ganti nama function multiplyByThree(arr) {_7 menjadi, oh, saya tidak tahu… bagaimana dengan function multiply(arr, multiplyFunction) {6? function multiply(arr, multiplyFunction) { Ke dalam ini function map(arr, transform) { Perhatikan baik-baik yang dicetak tebal dan lihat apa yang kami ubah antara fungsi function multiplyByThree(arr) {7 dan function multiply(arr, multiplyFunction) {6 tepat di atas. Satu-satunya hal yang kami ubah adalah nama fungsi dan nama parameter kedua yang digunakan. Itu dia. Ternyata, function multiplyByThree(arr) {_7 sudah seperti yang kita inginkan, namanya berbeda Kami dapat meneruskan fungsi apa pun yang kami inginkan function multiply(arr, multiplyFunction) {6. Kita dapat melakukan transformasi array dengan cara apa pun yang kita inginkan. Katakanlah kita memiliki larik string, dan kita ingin mengubah semuanya menjadi huruf besar function makeUpperCase(str) { Kami baru saja menulis var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_8. Cukup rapi, ya? Menggunakan Larik. petaBagaimana fungsi function multiply(arr, multiplyFunction) {_6 dibandingkan dengan var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {8 asli sebenarnya? . Pertama, kita tidak perlu memasukkan array sebagai argumen pertama. Alih-alih, larik yang digunakan adalah larik di sebelah kiri titik. Sebagai contoh, dua berikut ini setara. Menggunakan fungsi kita var originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_0 Menggunakan var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_8 asli, kami tidak meneruskan array. Kami memanggil metode var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_8 pada array kami dan hanya meneruskan fungsi tersebut var originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_1 Cukup banyak. Anda telah menulis var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {8 sendiri dan sekarang tahu cara kerjanya Lebih var originalArr = [1, 2, 3, 4, 5];function timesThree(item) { return item * 3;}function multiplyByThree(arr) { var newArr = []; for(var i = 0; i < arr.length; i++) { newArr[i] = timesThree(arr[i]); } return newArr;}var arrTransformed = multiplyByThree(originalArr);console.log(arrTransformed); // -> [3, 6, 9, 12, 15]_8 argumenAda perbedaan utama yang telah kami lewati. var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {8 akan memberikan fungsi yang Anda berikan dengan dua argumen tambahan. indeks, dan array asli itu sendiri var originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_2 Ini memungkinkan Anda untuk menggunakan indeks dan larik asli di dalam fungsi transformasi Anda jika Anda mau. Misalnya, kita ingin mengubah array item menjadi daftar belanja bernomor. Kami ingin menggunakan index var originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_3 Fungsi function multiply(arr, multiplyFunction) {_6 lengkap kami harus menggabungkan fungsi ini var originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_4 Fungsi singkat ini adalah inti dari var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {8. Fungsi sebenarnya akan memiliki beberapa pemeriksaan kesalahan dan pengoptimalan, tetapi ini adalah fungsi intinya Terakhir, Anda juga dapat menulis fungsi langsung di panggilan function multiply(arr, multiplyFunction) {6. Pengerjaan ulang contoh multiplyByThree kami var originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_5 Selesai. Fiuh Himpunan. SaringIdenya di sini mirip dengan Array. peta, kecuali alih-alih mengubah nilai individual, kami ingin memfilter nilai yang ada. Tanpa fungsi apa pun (selain var originalArr = [1, 2, 3, 4, 5];function timesFive(item) {_2), katakanlah kita ingin memfilter nilai dalam array yang kurang dari 5 untuk-loopvar originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_6 Mari abstraksi ini ke sebuah fungsi sehingga kita dapat menghapus nilai di bawah 5 dalam larik apa pun var originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_7 Mari kita buat agar kita dapat memfilter semua nilai di bawah nilai arbitrer apa pun var originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_8 → Mengabstraksi fungsi pemfilteran var originalArr = [1, 2, 3, 4, 5];function multiplyByThree(arr) {_9 → Memfilter apa pun di bawah 5, menggunakan filterBelow var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {0 → Memfilter apa pun di bawah 7, menggunakan filterBelow var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_1 SaringJadi kami memiliki fungsi var originalArr = [1, 2, 3, 4, 5];function timesFive(item) {_3 yang akan memfilter apa pun di bawah nilai tertentu, berdasarkan fungsi var originalArr = [1, 2, 3, 4, 5];function timesFive(item) {4 yang kami berikan (ini identik dengan fungsi var originalArr = [1, 2, 3, 4, 5];function timesFive(item) {3 di atas) var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_2 Mari kita ganti namanya var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_3 Dan kami telah menulis var originalArr = [1, 2, 3, 4, 5];function timesFive(item) {_6. Ini pada dasarnya sama dengan var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_9, sekali lagi kecuali untuk penggunaan var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_4 Sekali lagi, var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_9 meneruskan indeks dan larik asli ke fungsi Anda var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {5 Jadi kita harus membuat fungsi kita melakukan hal yang sama var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {_6 Wow. Itu dia. Anda telah mempelajari cara menggunakan dan menulis ________0______8 dan var originalArr = [1, 2, 3, 4, 5];function timesThree(item) {9. Pergi menulis beberapa kode CatatanJika ada minat untuk meliput function multiply(arr, multiplyFunction) {_1 atau function multiply(arr, multiplyFunction) {2 juga, beri tahu saya di komentar. forEach sangat mirip dengan map dan filter, tetapi pengurangan sedikit lebih rumit Bisakah kita menggunakan filter dan peta bersama dalam JavaScript?Fungsi Array#map() dan Array#filter() JavaScript sangat bagus jika digunakan bersama karena memungkinkan Anda membuat fungsi sederhana. Misalnya, inilah kasus penggunaan dasar untuk filter(). memfilter semua angka yang kurang dari 100 dari array numerik. Fungsi ini bekerja dengan baik pada array angka.
Bagaimana cara menggunakan peta dan memfilter secara bersamaan pada array menggunakan JavaScript?Pertama mari kita lihat fungsi peta dan filter secara singkat. . filter() metode. Metode ini mengembalikan larik baru yang berisi elemen yang lolos dari pengujian tertentu. pada array asli. . peta() metode. Metode ini digunakan untuk menerapkan fungsi pada setiap elemen dalam array dan mengembalikan array baru Bagaimana cara menggunakan filter peta dan mengurangi bersama dalam JavaScript?map() mengubah setiap elemen dalam array secara individual dan membuat array baru. filter() menghapus elemen yang tidak diperlukan dan membuat larik baru yang berisi elemen yang diperlukan. Terakhir, reduce() mereduksi semua elemen array menjadi satu nilai
Bisakah Anda menjelaskan fungsi filter () peta () dan pengurangan ()?Fungsi map(), filter(), dan reduce() semuanya melakukan hal yang sama. Mereka masing-masing mengambil fungsi dan daftar elemen, lalu mengembalikan hasil penerapan fungsi ke setiap elemen dalam daftar . Seperti yang dinyatakan sebelumnya, Python memiliki fungsi bawaan seperti map(), filter(), dan reduce(). |