CodeBlanks Logo Icon CodeBlanks

Özet - Spread ve rest

JavaScript kursu · İleri seviye · Ders 35/100

Spread ve rest kullanarak bir config nesnesini birleştiren ve varsayılanlarla dolduran fonksiyon yazarsın.

Özet - Spread ve rest

Bu grupta spread ve rest'in beş temelini öğrendin: dizi spread, nesne spread, rest parametresi, sığ kopya ve çağrıda spread. Üç nokta tek sembol; ama bağlama göre ya açar (spread) ya toplar (rest).

İki görev var: önce rest parametresi ile esnek bir yapılandırma birleştirici yazacaksın; sonra rest ve çağrıda spread'i aynı fonksiyonda birleştireceksin. Üzerine yazma davranışı ve sığ kopya tuzağını hatırla.

Uygulama Esnek yapılandırma birleştirici

buildConfig(...parts) adında bir fonksiyon yaz. Rest parametresi parts, istediğin kadar yapılandırma nesnesini bir dizi olarak toplar. Fonksiyon gövdesinde result adında boş bir nesne oluştur. parts üzerinde for...of ile dönerken her part'ı { ...result, ...part } ile result'a birleştir. Sonunda result'ı döndür ve fonksiyonu console.log ile en az iki nesneyle çağır.

Örnek çözümü göster
function buildConfig(...parts) {
  let result = {};
  for (const part of parts) {
    result = { ...result, ...part };
  }
  return result;
}
console.log(buildConfig({ a: 1 }, { b: 2 }, { a: 9 }));

Uygulama Rest ve çağrıda spread birlikte

logMax(...nums) adında bir fonksiyon yaz. Rest parametresi nums gelen tüm sayıları bir dizi olarak toplar. Gövdede Math.max(...nums) ile en büyük değeri bul ve console.log ile yazdır. Sonra fonksiyonu en az dört sayıyla çağır.

Örnek çözümü göster
function logMax(...nums) {
  console.log(Math.max(...nums));
}
logMax(3, 7, 2, 9, 1);

Kendini test et

  1. Tüm kavramları eşleştir

    ...arr (dizi literali)
    Dizileri birleştir
    {...obj}
    Nesneleri birleştir
    ...args (parametre)
    Kalan argümanları topla
    fn(...arr)
    Diziyi argümanlara aç
  2. Rest ve çağrıda spread

    function sum(...numbers) {
      let total = 0;
      for (const n of numbers) total += n;
      return total;
    }
    const args = [1, 2, 3];
    console.log(sum(____));
    Cevabı göster
    function sum(...numbers) {
      let total = 0;
      for (const n of numbers) total += n;
      return total;
    }
    const args = [1, 2, 3];
    console.log(sum(...args));

İleri seviye bölümündeki tüm dersler