# JavaScript Array Clean Sheet

*ဒီ methods တွေဟာ Project တိုင်းလိုလိုပါဝင်တဲ့ JavaScript ရဲ့ build-in methods တွေပဲဖြစ်ပါတယ်။ မဖြစ်မနေသိထားသင့်ပါတယ်။*

### forEach()

Array တစ်ခုမှာရှိတဲ့ items တွေကို Loop ပတ်စေချင်တဲ့အခါ သုံးတယ်။

(traditional for loop ထက် ပိုရှင်းလင်း)

![1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607674435124/xZUA45E_H.png?auto=compress,format&format=webp align="left")

**ဘယ်လိုနေရာတွေမှာ သုံးသလဲ?**

Array ထဲက items တွေကို loop ပတ်ပြီး ဖော်ပြချင်တယ်ဆိုပါစို့။

![2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675044110/IHojH1GK4.png?auto=compress,format&format=webp align="left")

---

### includes()

Array တစ်ခုမှာ ကိုယ်ရှာချင်တဲ့ item ရှိမရှိ စစ်တဲ့အခါသုံးတယ်။

![1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675134164/VxaWNVXZg.png?auto=compress,format&format=webp align="left")

**ဘယ်လိုနေရာတွေမှာ သုံးလို့ရသလဲ?**

Item တစ်ခု ကို Array ထဲ ထည့်ချင်တယ် ဆိုပါစို့။ ဒါပေမဲ့ ရှိပြီးသား item ဆိုရင် ထပ်မထည့်ချင်တဲ့အခါမျိုးမှာ သုံးနိုင်တယ်။

![2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675173924/8Du-6qIvB.png?auto=compress,format&format=webp align="left")

*Value 4 က arr ထဲမှာ မရှိမှ ထည့်မယ့် ပုံဖြစ်ပါတယ်။*

---

### filter()

Array တစ်ခုမှ လိုချင်တဲ့ items တွေကိုပဲစစ်ပြီး ဆွဲထုတ်ချင်တဲ့အခါသုံးတယ်။

![1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675246343/wl9Awyelw.png?auto=compress,format&format=webp align="left")

ဒါကတော့ even numbers တွေကို ဆွဲထုတ်လိုက်တာပါ။ return အနေနဲ့ကတော့ array ရပါတယ်။

**ဘယ်လိုနေရာတွေမှာ သုံးသလဲ?**

![2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675288149/vTAj0-iY5.png?auto=compress,format&format=webp align="left")

*ဒါကတော့ price 2000 ထက် ကျော်တဲ့ items တွေကို စစ်ထုတ်လိုက်တာပါ။*

---

### map()

Array တစ်ခုက items တွေကို update လုပ်ချင်တဲ့အခါ သုံးတယ်။

![1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675335993/HhXv_wT10.png?auto=compress,format&format=webp align="left")

*Array ထဲက item တခုချင်းစီကို 2 ဆ တိုးပြီးယူလိုက်တာပါ။*

**ဘယ်လိုနေရာတွေမှာ သုံးလို့ရသလဲ?**

![2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675374361/58XTQunf_.png?auto=compress,format&format=webp align="left")

*ဒါကတော့ salary 30000 တွေကို 5000 စီတိုးပေးလိုက်တာပါ။*

---

### reduce()

Array တစ်ခုမှာရှိတဲ့ items တွေရဲ့စုစုပေါင်း တန်ဖိုးရှာတဲ့အခါ သုံးပါတယ်။

![1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675506681/JKKRnavcN.png?auto=compress,format&format=webp align="left")

**ဘယ်လိုနေရာတွေမှာ သုံးသလဲ?**

![2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675545807/5-1vzAsPD.png?auto=compress,format&format=webp align="left")

*ဒါကတော့ array ထဲရှိ Salary value တွေ အားလုံးပေါင်းလိုက်တာပါ။*

---

### some()

Array ထဲက items တွေထဲမှ အနည်းဆုံး item တခုက condition မှန်ရင် return true ပြန်ပါတယ်။

![1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675628324/XB2gTCslT.png?auto=compress,format&format=webp align="left")

*ဒါကတော့ array ထဲမှာ even number အနည်းဆုံးတစ်ခုရှိနေလို့ true ပြန်တာပါ။*

**ဘယ်လိုနေရာတွေမှာ သုံးသလဲ?**

Array ထဲမှာ ကိုယ်လိုချင်တာ အနည်းဆုံး ၁ ခုရှိမရှိ ရှာချင်တဲ့အခါသုံးပါတယ်

![2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607675914475/gHNru6Tjc.png?auto=compress,format&format=webp align="left")

*ဒီလိုမျိုး Array ထဲမှာ gender value female ပါလားမပါလား ဒီနည်းနဲ့ သိနိုင်ပါတယ်။*

---

### every()

Array ထဲက items အကုန် condition မှန်မှ return true ပြန်ပါတယ်။

![1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607676006756/7_yIvt2Ju.png?auto=compress,format&format=webp align="left")

*Array ထဲက items အားလုံး even number မဟုတ်တဲ့အတွက် false ဖြစ်တာပါ။*

**ဘယ်လိုနေရာတွေမှာ သုံးသလဲ?**

![2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607676061412/fyEYYLQvS.png?auto=compress,format&format=webp align="left")

*Result1 ရဲ့ conditon က အသက် ၂၀ ကျော်လို့ စစ်ထားတဲ့အတွက် arr ထဲကသူအားလုံးက ၂၀ ကျော်ပါတယ်။ ဒါကြောင့် return က true ပါ။*

*Result2 ရဲ့ condition က အသက် ၂၁ ကျော်လို့ စစ်ထားတဲ့အတွက် arr ထဲမှာ အသက် ၂၀ တစ်ယောက်ရှိပါတယ်။ ဒါကြောင့် return က false ပါ။*

---

### sort()

Array ထဲက Items တွေကို sorting (ascending/descending) လုပ်တဲ့အခါမှာ သုံးတယ်။

![1.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607681270666/aanNejanq.png?auto=compress,format&format=webp align="left")

**Explanation**

*.sort(a,b) မှာ a ကို first number ၊ b ကို second number လို့ မှတ်ယူပါ။*

*? ကတော့ ternary operator ပါ (if else နဲ့ တူပါတယ်) (a &gt; b) ? 1 : -1 ဆိုတာက a က b ထက်ကြီးရင် 1 ကို return မှာ ဖြစ်ပြီး မဟုတ်ရင်တော့ -1 ကို return မှာပါ။*

*1 ကို return ရင် နေရာချိန်းမယ်ဆိုတဲ့ သဘောဖြစ်ပြီး -1 ဆိုရင်တော့ နေရာမချိန်းဘူး ဆိုတဲ့ သေဘာပါ။*

*ဆိုလိုရင်းက အရှေ့ကိန်းက အနောက်ကိန်းထက်ကြီးရင် နေရာလဲမယ်သဘော ဖြစ်တဲ့အတွက် ငယ်စဥ်ကြီးလိုက် အနေအထားကိုဖြစ်သွားစေပါတယ်။*

*ကြီးစဥ်ငယ်လိုက်လုပ်ရင်လည်း အနေအထားကို ပြောင်းပြန်ယူဆလိုက်ရင်ရပါပြီ။*

**ဘယ်လိုနေရာတွေမှာ သုံးသလဲ?**

![2.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1607681284267/88h6-OXgl.png?auto=compress,format&format=webp align="left")

*ဒီလိုမျိုး salary အများကနေအနည်းစီတဲ့ အခါမျိုးတွေမှာ သုံးနိုင်ပါတယ်။*
