Opereta Spread katika JavaScript
Katika ES6 kulionekana opereta maalum ...,
unaoitwa spread.
Wakati opereta spread umewekwa mbele ya safu (array), unagawanya safu hiyo kuwa maadili ya mtu mmoja mmoja, ukibadilisha safu kuwa seti ya vigezo (parameters) vinavyohitajika kwa wito wa funktsi.
Bila shaka inasikika kwa kutatanisha, kwa hivyo hebu
tuangalie kwenye mfano rahisi. Hebu tuseme tuna
funktsi inayokubali 3 vigezo
na kurudisha jumla yao:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Hebu tuseme pia tuna safu yenye vitatu elements:
let arr = [1, 2, 3];
Ni wazi, kwamba hatuwezi kuchukua tu na kupitisha safu hii kama kigezo cha funktsi, kama hivi:
let arr = [1, 2, 3];
func(arr);
Kwa sababu katika kesi hii safu nzima ingeingia kwenye kigezo cha kwanza cha funktsi, na kwenye kigezo hiki kinahitajika kupitishwa nambari (na hata kwenye vigezo vingine pia).
Bila shaka, inaweza kufanyika kama ifuatavyo:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Lakini pia kuna njia rahisi zaidi - kutumia opereta spread:
let arr = [1, 2, 3];
func(...arr);
Kuwepo kwa kutofautiana sio lazima - inaweza kutumika spread moja kwa moja kwenye safu:
func(...[1, 2, 3]);
Imepewa safu:
let arr = [1, 2, 3, 4, 5];
Pia imepewa funktsi:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Tafuta kwa kutumia funktsi iliyotolewa jumla ya viambato vya safu.