Mana yang lebih cepat peta atau untuk loop javascript?

JavaScript adalah sensasi baru dalam pengembangan web. Tidak hanya framework JS seperti NodeJS, React, Angular Vue, dll. Tapi, vanilla JS juga memiliki basis penggemar yang besar. Mari kita bicara tentang JavaScript modern. Loop selalu menjadi bagian besar dari sebagian besar bahasa pemrograman. JS modern memberi Anda banyak cara untuk mengulangi atau mengulangi nilai-nilai Anda

Tetapi pertanyaannya adalah apakah Anda benar-benar tahu loop atau iterasi mana yang paling sesuai dengan kebutuhan Anda. Ada banyak opsi yang tersedia di for loop, for , for(reverse), for. dari , untuk setiap , untuk. di , untuk. menunggu. Artikel ini akan membahas salah satu perdebatan tersebut

Untuk loop mana yang lebih cepat?

Menjawab. untuk (membalikkan)

Hal yang paling mengejutkan adalah ketika saya mengujinya pada mesin lokal saya mulai percaya bahwa for (mundur) adalah yang tercepat di antara semua for loop. Biarkan saya berbagi satu contoh. Ambil array dengan lebih dari 1 juta item dan jalankan untuk satu putaran

*Penafian. menghibur. akurasi hasil time() sangat tergantung pada konfigurasi sistem Anda. Lihat akurasi lebih dekat di sini. *

const million = 1000000;
const arr = Array(million);

console.time('⏳');

for (let i = arr.length; i > 0; i--) {} // for(reverse) :- 1.5ms

for (let i = 0; i < arr.length; i++) {} // for          :- 1.6ms

arr.forEach(v => v)                     // foreach      :- 2.1ms

for (const v of arr) {}                 // for...of     :- 11.7ms

console.timeEnd('⏳');

Alasan. Di sini, maju dan mundur untuk loop membutuhkan waktu yang hampir bersamaan. Hanya 0. Perbedaan 1ms ada karena untuk (membalikkan) menghitung variabel awal biarkan i = arr. panjang hanya sekali. Sementara di for forward for ia memeriksa kondisi i < arr. panjang setelah setiap kenaikan variabel. Perbedaan sekecil ini tidak masalah, Anda bisa mengabaikannya

Di bagian lain foreach adalah metode prototipe array. Bandingkan dengan normal for loop, foreach dan for. menghabiskan lebih banyak waktu untuk iterasi dalam array

Jenis loop, dan di mana Anda harus menggunakannya

1. Untuk loop (maju dan mundur)

Mungkin semua orang sudah familiar dengan loop ini. Anda dapat menggunakan for loop, di mana Anda perlu, menjalankan blok kode berulang kali untuk memperbaiki waktu penghitung. Pengulangan for tradisional adalah yang tercepat, jadi Anda harus selalu menggunakannya, bukan? . Keterbacaan Kode biasanya lebih penting, jadi default ke gaya yang sesuai dengan aplikasi Anda

2. untuk setiap

Metode ini menerima fungsi callback sebagai parameter masukan dan untuk setiap elemen dari array, fungsi callback ini dijalankan. Juga, untuk setiap fungsi callback menerima nilai saat ini dan indeks masing-masing. foreach juga, izinkan untuk menggunakan ini untuk parameter opsional dalam fungsi callback

const things = ['have', 'fun', 'coding'];

const callbackFun = (item, idex) => {
    console.log(`${item} - ${index}`);
}

things.foreach(callbackFun);

o/p:- have - 0
      fun - 1
      coding - 2
_

Catatan. - Jika Anda menggunakan foreach, Anda tidak dapat memanfaatkan korsleting dalam JavaScript. Jika Anda tidak tahu tentang korsleting, izinkan saya memperkenalkan Anda. Ketika kita menggunakan operator logika seperti AND(&&), OR(. ) dalam JavaScript, Ini akan membantu kita menghentikan lebih awal dan/atau melewatkan iterasi dari sebuah loop

3. Untuk… dari

untuk. dari distandarisasi dalam ES6 (ECMAScript 6). untuk. membuat loop iterasi pada objek yang dapat diubah seperti array, peta, set, string, dll. Poin plus lainnya dari loop ini adalah keterbacaan yang lebih baik

const arr = [3, 5, 7];
const str = 'hello';

for (let i of arr) {
   console.log(i); // logs 3, 5, 7
}

for (let i of str) {
   console.log(i); // logs 'h', 'e', 'l', 'l', 'o'
}

Catatan. - Jangan gunakan kembali untuk. dari pada generator, bahkan jika untuk. dari dihentikan lebih awal. Setelah keluar dari loop, generator dimatikan, dan mencoba mengulanginya lagi tidak memberikan hasil lebih lanjut

4. Untuk… di

untuk. in mengulangi variabel yang ditentukan atas semua properti enumerable dari suatu objek. Untuk setiap properti yang berbeda, for. dalam pernyataan akan mengembalikan nama properti yang ditentukan pengguna Anda selain indeks numerik

Oleh karena itu, lebih baik menggunakan for loop tradisional dengan indeks numerik saat melakukan iterasi pada array. Karena untuk. dalam pernyataan mengulangi properti yang ditentukan pengguna selain elemen array, bahkan jika Anda memodifikasi objek array (seperti menambahkan properti atau metode khusus)

const details = {firstName: 'john', lastName: 'Doe'};
let fullName = '';

for (let i in details) {
    fullName += details[i] + ' '; // fullName: john doe
}

Perbedaan antara untuk. dari dan untuk. di dalam

Perbedaan utama antara untuk. dari dan untuk. di adalah apa yang mereka ulangi. untuk. dalam loop ulangi properti objek sementara untuk. dari loop mengulangi nilai-nilai objek yang dapat diubah

let arr= [4, 5, 6];

for (let i in arr) {
   console.log(i); // '0', '1', '2'
}

for (let i of arr) {
   console.log(i); // '4', '5', '6'
}
_

Mana yang lebih cepat peta atau untuk loop javascript?

Kesimpulan

  • untuk yang tercepat, tetapi buruk dalam keterbacaan

  • foreach cepat, kontrol atas properti iterasi

  • untuk. lambat, tapi lebih manis

  • untuk. lambat, kurang berguna

Pada akhirnya, nasihat bijak untuk Anda. Tetapkan prioritas Anda untuk keterbacaan. Ketika Anda sedang mengembangkan struktur yang kompleks pada saat itu, keterbacaan kode sangat penting tetapi Anda juga harus tetap fokus pada kinerja. Cobalah untuk menghindari penambahan hiasan ekstra yang tidak perlu dalam kode Anda, terkadang itu mahal untuk kinerja aplikasi Anda. Bersenang-senang membuat kode

Apakah map lebih cepat daripada for loop?

map() bekerja jauh lebih cepat daripada for loop . Mempertimbangkan kode yang sama di atas saat dijalankan dalam ide ini. Menggunakan peta().

Apa yang lebih cepat daripada for loop di Javascript?

forEach loop . Waktu eksekusi forEach secara dramatis dipengaruhi oleh apa yang terjadi di dalam setiap iterasi. Ini cepat dan dirancang untuk kode fungsional.

Apakah untuk loop lambat di Javascript?

Kesimpulan. Perulangan for , while , dan do-while semuanya memiliki karakteristik kinerja yang serupa, sehingga tidak ada satu jenis perulangan yang secara signifikan lebih cepat atau lebih lambat daripada yang lain .

Apakah peta Javascript lambat?

map() melakukan beberapa logika tambahan yang memperlambatnya secara signifikan dibandingkan dengan for loop mentah .