roadmap.az

Menyu

JavaScript & DOMDərs 12 / 25

Massivin iterasiyası

Funksiyanı başqa funksiyaya ötür

Callback digər funksiyaya arqument kimi ötürülən funksiyadır. forEach hər mövcud element üçün callback çağırır; ona element, indeks və massivin özü verilir. Callback-in qaytardığı dəyər forEach tərəfindən nəticə massivi qurmaq üçün istifadə edilmir.

const values = [2, 3, -2, 0, -1];
function printNegative(value, index) {
  if (value < 0) console.log(index, value);
}
values.forEach(printNegative);
values.forEach(value => {
  if (value > 0) console.log(value);
});
Nümunə

İterasiya üçün düzgün alət

forEach(printNegative) funksiyanı ötürür; forEach(printNegative()) onu dərhal çağırıb nəticəsini ötürməyə çalışır. Anonim oxlu callback bir dəfə istifadə edilən qısa əməliyyatda rahatdır; təkrar məntiqi adlandırılmış funksiyaya çıxar.

Yeni massiv yaratmaq istəyirsənsə map seç. Dövrü erkən bitirmək lazım olduqda forEach-də break işləməz; for...of, find və ya some daha uyğun ola bilər. forEach(async ...) verilən Promise-lərin tamamlanmasını gözləmir; asinxron ardıcıllığı ayrıca qur.

Əlavə qeydlər və mənbələr

Callback başqa funksiyaya arqument kimi verilən funksiyadır. forEach hər element üçün callback çağırır; element və indeks parametrlərini istifadə et və ondan yeni massiv qaytarmasını gözləmə.

Niyə vacibdir?

JavaScript istifadəçi hərəkətinə cavab verən və məlumatı emal edən səhifələr yaratmağa imkan verir.

Əvvəlki biliklər

Bu mövzuda

  • Callback funksiyası
  • forEach və indeks
  • Anonim və oxlu callback

Mövzuya baxış

Mənbələr

Məşqin idarəetməsi
Addım 1 / 3

Hər element üçün işi gör

Yeni massiv daxil et və konsol addımlarına bax.

Hədəf: Massivə 4,5 yaz.

Canlı nəticə

Giriş123
Nəticəundefined
Mənbə kodu
[1,2,3].forEach(n => console.log(n));
Addım-addım izlə
  1. console: 1
  2. console: 2
  3. console: 3

Özün sına

Müsbət və mənfi ədədləri ayrıca göstərən iki funksiya yaz. forEach istifadə et və boş massiv üçün davranışı yoxla.

Nəticəni necə yoxlayım?

Müsbət və mənfi ədədləri forEach ilə ayırır, callback-i çağırmaq əvəzinə arqument kimi ötürdüyünü izah edirsən.

Gözlənilən nəticə

  • Müsbətlər 3, 5; mənfilər-2 olur.
  • Boş giriş üçün hər iki funksiya boş massiv qaytarır.
[3,5]
[-2]
[]
Nümunə həllə bax

Əvvəl özün sına, sonra müqayisə et. Bu, mümkün həllərdən biridir.

Hər funksiya forEach ilə yalnız öz şərtinə uyğun dəyərləri yeni siyahıya yığır. Sıfır müsbət və ya mənfi sayılmır.

main.js

function positives(numbers) {
  const result = [];
  numbers.forEach(number => { if (number > 0) result.push(number); });
  return result;
}
function negatives(numbers) {
  const result = [];
  numbers.forEach(number => { if (number < 0) result.push(number); });
  return result;
}
console.log(JSON.stringify(positives([-2, 0, 3, 5])));
console.log(JSON.stringify(negatives([-2, 0, 3, 5])));
console.log(JSON.stringify(positives([])));

Praktikanı bitirdin?Özün qiymətləndirirsən. İrəliləyiş bu brauzerdə saxlanılır.