JavaScript ရှိ ပြန်လည်အသုံးချခြင်းနှင့် များမြှောင်ကွဲဖွဲ့စည်းပုံများ
မည်သည့် အဆင့် နက်ရှိုင်းစွာ စီစဉ်ထားသည့် များမြှောင်ကွဲ array တစ်ခုကို ပေးထားသည်။ ဥပမာ၊ ဤကဲ့သို့ဖြစ်သည်-
let arr = [
1,
[
2, 7, 8
],
[
3, 4, [5, [6, 7]],
]
];
သင်မြင်သည့်အတိုင်း၊ ဤ array သည် ရှုပ်ထွေးသော ဖွဲ့စည်းပုံရှိပြီး၊ ဤဖွဲ့စည်းပုံသည် မည်သည့်ပုံစံမဆို ဖြစ်နိုင်ကာ နက်ရှိုင်းစွာ စီစဉ်ထားသော အဆင့်များသည် မည်မျှပင် နက်ရှိုင်းနိုင်သည်ဟု ယူဆထားသည်။
ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ array ရှိ primitive အရာအားလုံးကို (ဆိုလိုသည်မှာ array မဟုတ်သော) console တွင် ထုတ်ပြလိုသည်ဆိုပါစို့။ ဤအခြေအနေတွင် ထိုသို့သော array ကို ဖြတ်ကျော်ရှာဖွေရန် ကွင်းဆက်များကို အသုံးပြုရန် ရိုးရိုးရှင်းရှင်း မဖြစ်နိုင်ပါ။ အဘယ်ကြောင့်ဆိုသော် array သည် မမှန်သော ဖွဲ့စည်းပုံရှိပြီး နက်ရှိုင်းစွာ စီစဉ်ထားသော အဆင့်ကို မသိရသောကြောင့် ဖြစ်သည်။
သို့သော် ထိုသို့သော array ကို ဖြတ်ကျော်ရှာဖွေရန် ပြန်လည်အသုံးချခြင်းကို အသုံးပြုရန် အလွန် အဆင်ပြေလိမ့်မည်။
အစပြုရန်၊ ကျွန်ုပ်တို့၏ array ကို parameter အဖြစ် ပို့ပေးမည့် function တစ်ခုကို ပြုလုပ်ကြပါစို့။ function အတွင်းတွင် ကျွန်ုပ်တို့၏ array ကို ဖြတ်ကျော်ရှာဖွေရန် ကွင်းဆက်တစ်ခု ပြုလုပ်ကြမည်-
function func(arr) {
for (let elem of arr) {
console.log(elem);
}
}
func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);
ကျွန်ုပ်တို့ ပြုလုပ်ထားသော ကွင်းဆက်သည် အဓိက array ၏
အရာများကိုသာ ဖြတ်ကျော်ရှာဖွေလိမ့်မည်။ ဆိုလိုသည်မှာ၊ ပထမဦးစွာ
သူက 1 ကို ထုတ်ပြလိမ့်မည်၊ ထို့နောက် [2, 7, 8] ကို
ထုတ်ပြပြီး၊ ထို့နောက် [3, 4, [5, [6, 7]] ကို ထုတ်ပြလိမ့်မည်။
ယခု ကွင်းဆက်အတွင်းတွင် primitive အရာများနှင့် array အရာများကို ခွဲခြားကြပါစို့-
function func(arr) {
for (let elem of arr) {
if (typeof elem == 'object') {
// အရာ - array
} else {
// အရာ - primitive
console.log(elem);
}
}
}
func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);
ယခု၊ ကျွန်ုပ်တို့၏ အရာသည် array ဖြစ်ပါက၊ function သည် ၎င်းကိုယ်၎င်း ထပ်မံခေါ်ယူကာ ထို array ကို parameter အဖြစ် ပို့ပေးရန် ပြုလုပ်ကြပါစို့-
function func(arr) {
for (let elem of arr) {
if (typeof elem == 'object') {
func(elem);
} else {
console.log(elem);
}
}
}
func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]);
မည်သည့် အဆင့် နက်ရှိုင်းစွာ စီစဉ်ထားသည့် များမြှောင်ကွဲ object တစ်ခုကို ပေးထားသည်။ ဥပမာ၊ ဤကဲ့သို့ဖြစ်သည်-
{a: 1, b: {c: 2, d: 3, e: 4}, f: {g: 5, j: 6, k: {l: 7, m: {n: 8, o: 9}}}}
ပြန်လည်အသုံးချခြင်းကို အသုံးပြု၍ ဤ object ၏ primitive အရာအားလုံးကို console တွင် ထုတ်ပြပါ။
မည်သည့် အဆင့် နက်ရှိုင်းစွာ စီစဉ်ထားသည့် များမြှောင်ကွဲ array တစ်ခုကို ပေးထားသည်။ ဥပမာ၊ ဤကဲ့သို့ဖြစ်သည်-
[1, [2, 7, 8], [3, 4, [5, [6, 7]]]]
ကျွန်ုပ်တို့၏ များမြှောင်ကွဲ array ကို တစ်မြှောင်းတည်းသော array အဖြစ် ပြန်လှန်ပေးမည့် ကုဒ်ကို ရေးပါ။ အထက်တွင် ဖော်ပြထားသော array အတွက်၊ ၎င်းသည် ဤကဲ့သို့ ပေါ်လာလိမ့်မည်-
[1, 2, 7, 8, 3, 4, 5, 6, 7]