İstifadə nümunəsi:
var a = ["a", "b", "c"]; a.forEach(funksiya(giriş) ( console.log(giriş); ));
Ümumiyyətlə, forEach-dan istifadə bu metodu yerli olaraq dəstəkləməyən brauzerlər üçün es5-shim emulyasiya kitabxanasını birləşdirməyi tələb edir. Bunlara IE 8 və yuxarıda daxildir erkən versiyalar, hələ də burada və orada istifadə olunur.
ForEach-ın üstünlüyü ondan ibarətdir ki, cari massiv elementinin indeksini və dəyərini saxlamaq üçün yerli dəyişənləri elan etməyə ehtiyac yoxdur, çünki onlar avtomatik olaraq arqumentlər kimi geri çağırış funksiyasına ötürülür.
Hər bir elementə geri zəng etməyin mümkün dəyərindən narahatsınızsa, narahat olmayın və bunu oxuyun.
ForEach massivin bütün elementləri üzərində təkrarlamaq üçün nəzərdə tutulmuşdur, lakin buna əlavə olaraq, ES5 bütün və ya bəzi elementləri təkrarlamaq və onlar üzərində bəzi hərəkətləri yerinə yetirmək üçün daha bir neçə faydalı üsul təklif edir:
Var a = ["a", "b", "c"]; var indeksi; üçün (indeks = 0; indeks< a.length; ++index) {
console.log(a);
}
Əgər massivin uzunluğu bütün dövrə boyu sabitdirsə və dövrənin özü kodun performans baxımından kritik hissəsinə aiddirsə (bu, çətin ki), o zaman bunun üçün “daha optimal” versiyasından istifadə edə bilərsiniz. massiv:
Var a = ["a", "b", "c"]; var indeksi, len; üçün (indeks = 0, len = a.length; indeks< len; ++index) {
console.log(a);
}
Teorik olaraq, bu kod əvvəlkindən bir az daha sürətli işləməlidir.
Elementlərin sırası vacib deyilsə, o zaman optimallaşdırma baxımından daha da irəli gedə və axtarış sırasını tərsinə dəyişdirərək massivin uzunluğunu saxlamaq üçün dəyişəndən xilas ola bilərsiniz:
Var a = ["a", "b", "c"]; var indeksi; üçün (indeks = a.uzunluq - 1; indeks >= 0; --index) ( console.log(a); )
Bununla belə, müasir JavaScript mühərriklərində belə optimallaşdırma oyunları adətən heç nə demək deyil.
Bununla belə, bəzi hallarda, məsələn, seyrək massivlər üzərində iterasiya, for...in, aşağıdakı nümunədə göstərildiyi kimi, ehtiyat tədbirləri gördüyünüz müddətcə faydalı ola bilər:
// a - seyrək massiv var a = ; a = "a"; a = "b"; a = "c"; üçün (a-da var açarı) ( if (a.hasOwnProperty(açar) && /^0$|^\d*$/.test(açar) && açarı