Cinecus CC
Published on

แชร์ JavaScript Array Method ที่ใช้บ่อย ๆ ตอนที่ 6 : includes, some, every

Overview

วันนี้เราจะมาดู array method ที่ใช้ตรวจสอบค่าที่อยู่ใน array กันครับ เป็นประโยชน์ในการเช็คข้อมูลที่อยู่ใน array มากๆ

Array Data

ก่อนอื่นขอสมมติข้อมูล Array ชื่อ cypto_currency ที่เก็บชื่อของเหรียญเป็น string ขึ้นมา เหมือนกับตอนที่แล้ว

index.js
const cypto_currency = ['BTC','ETH','BNB','XRP','ADA','SOL']

includes

includes เอาไว้ตรวจสอบข้อมูลใน array ว่ามี item ที่ระบุอยู่ใน array หรือไม่ โดยจะคืนค่าเป็น boolean

array.includes(searchElement,start_index)

ตัวอย่าง : อยากตรวจสอบว่ามีชื่อเหรียญที่กำหนดใน array ไหม

index.js
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

index.js
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 ไหม

index.js
const check = cypto_currency_data.some(element=>element.cap > 500000)
console.log('check', check)

ผลลัพธ์

check true

ตัวอย่าง 2 : ต้องการตรวจสอบว่า cypto_currency_data มีตัวใดตัวหนึ่งที่ cap น้อยกว่า 10,000 ไหม

index.js
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 หรือไม่

index.js
const check = cypto_currency_data.every(element=>element.cap > 500000)
console.log('check', check)

ผลลัพธ์

check false

ตัวอย่าง 2 : ต้องการทราบว่าทุกตัวมีชื่อ 3 ตัวอักษร หรือไม่

index.js
const check = cypto_currency_data.every(element=>element.name.length === 3)
console.log('check', check)

ผลลัพธ์

check true

สรุปการใช้ includes, some, every

  • includes ใช้ตรวจสอบว่ามี item ที่ต้องหาค้นหาใน array นั่นหรือไม่ ได้ค่ากับมาเป็น boolean
  • some กับ every เหมาะกับการใช้ตรวจสอบ array ของ object วิธีการใช้คล้ายๆกับพวก map กับ filter
  • some ใช้ตรวจสอบเงื่อนไขใน array ถ้ามีตัวใดตัวหนึ่งตรงตามเงื่อนไข จะได้ค่า true แต่ถ้าไม่มีตัวใดตรงเงื่อนไขเลย จะได้ค่า false
  • every ใช้ตรวจสอบเงื่อนไขใน array ถ้าทุกตัวตรงตามเงื่อนไข จะได้ค่า true แต่ถ้ามีตัวใดตัวหนึ่งไม่ตรงเงื่อนไข จะได้ค่า false

References