- Published on
แชร์ JavaScript Array Method ที่ใช้บ่อย ๆ ตอนที่ 6 : includes, some, every
Overview
วันนี้เราจะมาดู array method ที่ใช้ตรวจสอบค่าที่อยู่ใน array กันครับ เป็นประโยชน์ในการเช็คข้อมูลที่อยู่ใน array มากๆ
Array Data
ก่อนอื่นขอสมมติข้อมูล Array ชื่อ cypto_currency ที่เก็บชื่อของเหรียญเป็น string ขึ้นมา เหมือนกับตอนที่แล้ว
const cypto_currency = ['BTC','ETH','BNB','XRP','ADA','SOL']
includes
includes เอาไว้ตรวจสอบข้อมูลใน array ว่ามี item ที่ระบุอยู่ใน array หรือไม่ โดยจะคืนค่าเป็น boolean
array.includes(searchElement,start_index)
ตัวอย่าง : อยากตรวจสอบว่ามีชื่อเหรียญที่กำหนดใน array ไหม
const check_1 = cypto_currency.includes('ETH')
const check_2 = cypto_currency.includes('DOGE')
console.log('check_1', check_1)
console.log('check_2', check_2)
ผลลัพธ์
check_1 true
check_2 false
some
some ใช้ตรวจสอบ array ถ้ามีบางตัวที่เข้าเงื่อนไขที่ระบุ จะคืนค่า true ทันที เหมาะกับการตรวจสอบ array ของ object แนวทางจากใช้จะคล้าย ๆกับ map จากตอนที่ 2
array.some(element=>condition)
ขอสมมติข้อมูล Array ตัวใหม่ คือ cypto_currency_data เก็บข้อมูลเป็น array ของ object โดยมี field คือ name, cap
const cypto_currency_data = [
{
name:'BTC',
cap: 567000
},
{
name:'ETH',
cap: 245000
},
{
name:'BNB',
cap: 48000
},
{
name:'XRP',
cap: 20500
},
{
name:'ADA',
cap: 18000
},
]
ตัวอย่าง 1 : ต้องการตรวจสอบว่า cypto_currency_data มีตัวใดตัวหนึ่งที่ cap มากกว่า 500,000 ไหม
const check = cypto_currency_data.some(element=>element.cap > 500000)
console.log('check', check)
ผลลัพธ์
check true
ตัวอย่าง 2 : ต้องการตรวจสอบว่า cypto_currency_data มีตัวใดตัวหนึ่งที่ cap น้อยกว่า 10,000 ไหม
const check = cypto_currency_data.some(element=>element.cap < 10000)
console.log('check', check)
ผลลัพธ์
check false
every
every ใช้ตรวจสอบ array ทุกตัวต้องเข้าเงื่อนไขที่ระบุ จะคืนค่า true ทันที เหมาะกับการตรวจสอบ array ของ object แนวทางจากใช้จะคล้าย ๆกับ map จากตอนที่ 2
array.every(element=>condition)
ตัวอย่างขอใช้ array ชื่อ cypto_currency_data ด้านบน เช่นเดียวกับตัวอย่างของ some
ตัวอย่าง 1 : ต้องการทราบว่าทุกตัวมี cap มากกว่า 500,000 หรือไม่
const check = cypto_currency_data.every(element=>element.cap > 500000)
console.log('check', check)
ผลลัพธ์
check false
ตัวอย่าง 2 : ต้องการทราบว่าทุกตัวมีชื่อ 3 ตัวอักษร หรือไม่
const check = cypto_currency_data.every(element=>element.name.length === 3)
console.log('check', check)
ผลลัพธ์
check true
สรุปการใช้ includes, some, every
includesใช้ตรวจสอบว่ามี item ที่ต้องหาค้นหาใน array นั่นหรือไม่ ได้ค่ากับมาเป็น booleansomeกับeveryเหมาะกับการใช้ตรวจสอบ array ของ object วิธีการใช้คล้ายๆกับพวกmapกับfiltersomeใช้ตรวจสอบเงื่อนไขใน array ถ้ามีตัวใดตัวหนึ่งตรงตามเงื่อนไข จะได้ค่าtrueแต่ถ้าไม่มีตัวใดตรงเงื่อนไขเลย จะได้ค่าfalseeveryใช้ตรวจสอบเงื่อนไขใน array ถ้าทุกตัวตรงตามเงื่อนไข จะได้ค่าtrueแต่ถ้ามีตัวใดตัวหนึ่งไม่ตรงเงื่อนไข จะได้ค่าfalse