Menu
Coddy logo textTech

Dizi Metotlarını Zincirleme

Coddy'nin JavaScript Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 55 / 65.

Dizileri zincirlemek, tek bir ifadede bir dizi üzerinde birden fazla işlem gerçekleştirmenize olanak tanır. Bu yaklaşım, kodunuzu daha kısa ve okunabilir hale getirebilir.

İşte dizi metotlarını zincirleme kullanımına bir örnek:

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const result = numbers
  .filter(num => num % 2 === 0)
  .map(num => num * 2)
  .reduce((sum, num) => sum + num, 0);

console.log(result); // 60

Bu örnekte, bir sayı dizisiyle başlıyoruz, tek sayıları ayıklıyoruz, kalan her sayıyı iki katına çıkarıyoruz ve ardından sonuçları topluyoruz.

Zincirleme sırası önemlidir. Zincirdeki her metot, bir önceki metodun sonucu üzerinde işlem yapar.

challenge icon

Görev

Kolay

Bir meyve nesneleri dizisi alan processFruits adında bir fonksiyon oluşturun. Her meyve nesnesi name (string) ve quantity (number) özelliklerine sahiptir.

Fonksiyon, aşağıdakileri yapmak için zincirlenmiş dizi metotlarını kullanmalıdır:

  1. Miktarı 0 olan meyveleri filtreleyin
  2. Her meyve adını büyük harfe dönüştürün
  3. Tüm meyveleri miktarlarıyla birlikte "APPLE: 5, BANANA: 3" şeklinde listeleyen bir dize oluşturun

Kısa bir hatırlatma:

Bir dize dizisini tek bir dizeye dönüştürmek için .join(", ") fonksiyonunu kullanabilirsiniz.

Hatta .join() fonksiyonunu bile zincirlemek mümkündür:

arr.filter(...)
   .map(...)
   .join(...)

Kopya kağıdı

Dizi metotlarını zincirlemek, bir dizi üzerinde tek bir ifadede birden fazla işlem yapmanıza olanak tanıyarak kodu daha kısa ve okunabilir hale getirir.

Zincirdeki her metot, bir önceki metodun sonucu üzerinde işlem yapar:

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const result = numbers
  .filter(num => num % 2 === 0)
  .map(num => num * 2)
  .reduce((sum, num) => sum + num, 0);

console.log(result); // 60

Bir diziyi dizeye dönüştürmek için .join() metodunu da zincirleyebilirsiniz:

arr.filter(...)
   .map(...)
   .join(", ")

Kendin dene

function processFruits(fruits) {
  // Kodunuzu buraya yazın
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler