CodeGym /Kurslar /Frontend SELF AZ /rest və spread əməliyyatları

rest və spread əməliyyatları

Frontend SELF AZ
Səviyyə , Dərs
Mövcuddur

9.1 Spread (açıq operatoru)

JavaScript-də restspread əməliyyatları massivlər, obyektlər və funksiyalarla işləmək üçün geniş imkanlar təqdim edir. Bu əməliyyatlar kodu sadələşdirir, onu daha aydın və çevik edir. Bu mühazirədə rest və spread əsas konseptlərini, həmçinin onların istifadəsinə dair nümunələri ətraflı müzakirə edəcəyik.

spread (...) operatoru massivi və obyektləri elementlər gözlənilən yerlərdə "açmağa" imkan verir. Bu, massivlərin və ya obyektlərin kopyalanması, birləşdirilməsi, həmçinin funksiyalara arqumentlərin ötürülməsi zamanı faydalı ola bilər.

Nümunə 1: Massivin kopyalanması

Bu nümunədə copiedArray originalArray-ın kopyasıdır.

Burada operatoru massivi dəyişənlər siyahısı kimi "açır", [] operatoru isə dəyişənlər dəstini yeni massivdə "bağlayır":

JavaScript
    
      const originalArray = [1, 2, 3];
      const copiedArray = [...originalArray];

      console.log(copiedArray); // Çap edəcək: [1, 2, 3]
    
  

Nümunə 2: Massivlərin birləşdirilməsi

Bu nümunədə iki massiv array1array2 bir massivə combinedArray birləşdirilir.

Burada operatoru hər iki massiv dəyişənlər siyahısı kimi açır, [] operatoru isə dəyişənləri yeni massivdə birləşdirir:

JavaScript
    
      const array1 = [1, 2, 3];
      const array2 = [4, 5, 6];
      const combinedArray = [...array1, ...array2];

      console.log(combinedArray); // Çap edəcək: [1, 2, 3, 4, 5, 6]
    
  

Nümunə 3: Funksiyaya arqumentlərin ötürülməsi

Bu nümunədə numbers massiv üç arqumentin sum() funksiyasına ötürülməsi üçün açılır:

JavaScript
    
      function sum(a, b, c) {
        return a + b + c;
      }

      const numbers = [1, 2, 3];

      console.log(sum(...numbers)); // Çap edəcək: 6
    
  

Nümunə 4: Obyektin kopyalanması

Bu nümunədə copiedObject originalObject-ın kopyasıdır:

JavaScript
    
      const originalObject = { a: 1, b: 2 };
      const copiedObject = { ...originalObject };

      console.log(copiedObject); // Çap edəcək: { a: 1, b: 2 }
    
  

Nümunə 5: Obyektlərin birləşdirilməsi

Bu nümunədə iki obyekt obj1obj2 bir obyektə combinedObject birləşdirilir:

JavaScript
    
      const obj1 = { a: 1, b: 2 };
      const obj2 = { c: 3, d: 4 };
      const combinedObject = { ...obj1, ...obj2 };

      console.log(combinedObject); // Çap edəcək: { a: 1, b: 2, c: 3, d: 4 }
    
  

9.2 Rest (qalıq parametr operatoru)

rest (...) operatoru bir neçə elementi arayda toplamağa imkan verir. Bu xüsusilə dəyişən sayda argument qəbul edən funksiyalarla işləyərkən, eləcə də massivlərin və obyektlərin destrukturizasiyası zamanı faydalıdır.

Misal 1: Funksiyalarda qalıq parametrlər

Bu nümunədə sum() funksiyası istənilən sayda argument qəbul edərək onları cəmləşdirir:

JavaScript
    
      function sum(...numbers) {
        return numbers.reduce((acc, num) => acc + num, 0);
      }

      console.log(sum(1, 2, 3)); // Çıxış: 6
      console.log(sum(4, 5, 6, 7)); // Çıxış: 22
    
  

Misal 2: Rest ilə massivlərin destrukturizasiyası

Bu nümunədə massivdəki ilk iki element firstsecond dəyişənlərinə təyin olunur, qalan elementlər isə rest adlı bir massivi təşkil edir:

JavaScript
    
      const [first, second, ...rest] = [1, 2, 3, 4, 5];

      console.log(first);  // Çıxış: 1
      console.log(second); // Çıxış: 2
      console.log(rest);   // Çıxış: [3, 4, 5]
    
  

Misal 3: Rest ilə obyektlərin destrukturizasiyası

Bu nümunədə ab xüsusiyyətləri ayrıca dəyişənlərə çıxarılır, qalan xüsusiyyətlər isə rest adlı obyektə yığılır:

JavaScript
    
      const { a, b, ...rest } = { a: 1, b: 2, c: 3, d: 4 };

      console.log(a);  // Çıxış: 1
      console.log(b);  // Çıxış: 2
      console.log(rest); // Çıxış: { c: 3, d: 4 }
    
  

9.3 Real tapşırıqlarda rest və spread istifadəsi

Nümunə 1: Şərtlə massivlərin birləşdirilməsi

Bu nümunədə istifadəçi parametrləri userSettings standart parametrləri defaultSettings üstələyir:

JavaScript
    
      const defaultSettings = { theme: 'dark', showNotifications: true };
      const userSettings = { showNotifications: false, fontSize: 14 };
      const settings = { ...defaultSettings, ...userSettings };

      console.log(settings); // Çıxış: { theme: 'dark', showNotifications: false, fontSize: 14 }
    
  

Nümunə 2: Massivin hissələrə bölünməsi

Bu nümunədə numbers massivi ilk iki elementi çıxarmaqla iki hissəyə bölünür:

JavaScript
    
      const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
      const [first, second, ...rest] = numbers;
      const firstHalf = rest.slice(0, Math.floor(rest.length / 2));
      const secondHalf = rest.slice(Math.floor(rest.length / 2));


      console.log(firstHalf); // Çıxış: [3, 4, 5, 6]
      console.log(secondHalf); // Çıxış: [7, 8, 9, 10]
    
  
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION