JavaScript даги spread оператори
ES6 да ... махсус оператори пайдо бўлди,
у spread деб аталади.
Spread оператори массив олдида турганда, у шу массивни алохида қийматларга ажратади, массивни функцияни чақириш учун зарур бўлган параметрлар тўпламига айлантиради.
Аникки, тушунарсиз эшитилади, шунинг учун кулай
мисолда кўрамиз. Бизда 3 параметр қабул қиладиган
ва уларнинг йиғиндисини қайтарадиган функция бор дейлик:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Бизда учта элементдан иборат массив хам бор дейлик:
let arr = [1, 2, 3];
Аникки, биз бу массивни ўзини функцияга параметр сифатида бериб бўлмайди, мана бу шаклда:
let arr = [1, 2, 3];
func(arr);
Чунки бу ҳолатда бутун массив функциянинг биринчи параметрига түшади, ҳолбуки ушбу параметрга рақам берилиши зарур (ва бошқа параметрларга хам).
Албатта, куйидагича қилиш мумкин:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Лекин янада содда йўл - spread операторидан фойдаланиш:
let arr = [1, 2, 3];
func(...arr);
Ўзгарувчи борлиги мажбурий эмас - spread ни тўғридан-тўғри массивга қўлланса бўлади:
func(...[1, 2, 3]);
Массив берилган:
let arr = [1, 2, 3, 4, 5];
Функция хам берилган:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Берилган функция ёрдамида массив элементларининг йиғиндисини топиң.