JavaScript ရှိ rest operator

ဤသင်ခန်းစာကို ရှင်းလင်းချက်အနည်းငယ်ဖြင့် စတင်ပါမည်။ ဤအခန်းကဏ္ဍရှိ ယခင်သင်ခန်းစာများအားလုံးတွင် ... operator အကြောင်း အပြည့်အစုံ မပြောပြခဲ့ပါ။

တကယ်တော့ ဤ operator သည် ကုဒ်အတွင်းရှိ နေရာအလိုက် spread operator (သို့) rest operator ဟု ခေါ်ဆိုနိုင်ပါသည်။

သင်သိပြီးဖြစ်သည့်အတိုင်း spread operator သည် array (သို့) string ၏ ရှေ့တွင်ရှိတဲ့အခါ ၎င်းတို့ကို တစ်ခုချင်းစီသော တန်ဖိုးများအဖြစ် ခွဲထုတ်ပေးပါသည်။ rest operator သည် ... ပုံစံတူ syntax ရှိသော်လည်း တစ်ခြားအရာအတွက် ရည်ရွယ်ပါသည်။

ဘာအတွက်လဲဆိုတာ အခုပဲ စစ်ဆေးကြည့်ပါမယ်။ parameter နှစ်ခုလက်ခံသည့် function တစ်ခု ရှိတယ်ဆိုပါစို့။

javascriptfunction func(a, b) {
  console.log(a);
  console.log(b);
}

function ထဲသို့ parameter အပိုများ ထည့်သွင်းလိုက်လျှင် error တက်မည်မဟုတ်ကြောင်း သင်သိပြီးဖြစ်မည်။

javascriptfunc(1, 2, 3, 4, 5);

rest operator သည် parameter အပိုအားလုံးကို array ပုံစံဖြင့် ရယူနိုင်စေပါသည်။ ထိုသို့ပြုလုပ်ရန် function ထဲတွင် parameter တစ်ခုထပ်မံထည့်ပါ (နောက်ဆုံးမှာသာထားရမည်)။ ထို parameter ၏ ရှေ့တွင် 3 မှတ်တို့ထားရပါမည်။

javascriptfunction func(a, b, ...rest) {
  
}

ဤမှတ် (၃) ချက်သည် rest operator ဖြစ်ပြီး variable အမည်ကို မည်သည့်နာမည်ပေးနိုင်သော်လည်း ပုံမှန်အားဖြင့် ၎င်းကို rest ဟုပင်ခေါ်လေ့ရှိပါသည်။

ကျွန်ုပ်တို့၏ function ကို parameter အရေအတွက် ပိုမိုများပြားစွာဖြင့် ခေါ်ယူကြည့်ပြီး a နှင့် b parameter များထဲသို့ ဘာတွေဝင်သွားပြီး ဘာတွေက rest ထဲတွင် ကျန်ရှိနေသည်ကို ကြည့်ရအောင်။

javascriptfunc(1, 2, 3, 4, 5);

function func(a, b, ...rest) {
  console.log(a);    // 1 ကို ပြသမည်
  console.log(b);    // 2 ကို ပြသမည်
  console.log(rest); // [3, 4, 5] ကို ပြသမည်
}

Parameter အပိုမရှိပါက rest variable ထဲတွင် array အလွတ်တစ်ခု ရေးမှတ်သွားမည်။

javascriptfunc(1, 2);

function func(a, b, ...rest) {
  console.log(a);    // 1 ကို ပြသမည်
  console.log(b);    // 2 ကို ပြသမည်
  console.log(rest); // [] ကို ပြသမည်
}

Function ထဲတွင် parameter လုံးဝမရှိခြင်းလည်း ဖြစ်နိုင်သော်လည်း ၎င်းထဲသို့ rest ထည့်သွင်းနိုင်ပါသည်။ ထိုသို့ဆိုလျှင် function ကို parameter မည်မျှပင်ရှိသည်ဖြစ်စေ ခေါ်ယူနိုင်ပြီး ၎င်းအားလုံးသည် rest array ထဲသို့ ရောက်ရှိသွားမည်ဖြစ်သည်။

javascriptfunction func(...rest) {
  console.log(rest);
}