Ana içeriğe geç
Modül 6 · Ders 1 ders 4Kurstaki 21/32~10 min
Modül dersleri (1/4)

harita ve filtre

İki temel yöntem: Bir diziyi orijinali değiştirmeden yeni bir diziye dönüştürürler.

map: her öğeyi dönüştür

Bir işlevi alır, onu her öğeye uygular ve aynı uzunlukta bir dizi döndürür sonuçlarla birlikte.

JS
const numeri = [1, 2, 3, 4];

const doppi = numeri.map((n) => n * 2);
// [2, 4, 6, 8]

const stringhe = numeri.map((n) => `n=${n}`);
// ['n=1', 'n=2', 'n=3', 'n=4']

Orijinaline dokunulmadan kalır:

JS
numeri; // [1, 2, 3, 4]  ← unchanged

filter: bir alt küme seç

Bir yüklem (doğru/yanlış döndüren bir işlev) alır. Yalnızca ilgili öğeleri tutar yüklem doğrudur.

JS
const numeri = [1, 2, 3, 4, 5, 6];

const pari = numeri.filter((n) => n % 2 === 0);
// [2, 4, 6]

const grandi = numeri.filter((n) => n > 3);
// [4, 5, 6]

İkisini birleştirmek

Klasik ardışık düzen: filtreleyin, ardından dönüştürün.

JS
const prezzi = [12, 5, 100, 30, 7];

const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]

Deneyin

Egzersiz#js.m6.l1.e1
Denemeler: 0Yükleniyor…

"KDV(fiyatlar, oran)"ı tanımlayın: Bir sayı dizisi ve bir oran (ör. 0,22) verildiğinde, fiyatların KDV oranında artırıldığı bir dizi döndürün. Haritayı kullanın.

Düzenleyici yükleniyor…
İpucu göster

fiyatlar.map((p) => p * (1 + oran))

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#js.m6.l1.e2
Denemeler: 0Yükleniyor…

`adultNames(people)` tanımlayın: bir nesne dizisi alırsınız { name, age } ve yaşı >= 18 olan kişilerin adlarının dizisini döndürürsünüz. Filtre + haritayı kullanın.

Düzenleyici yükleniyor…
İpucu göster

Zincir: .filter(...).map((p) => p.name)

3 denemeden sonra çözüm mevcut