DEV Community

hambalee
hambalee

Posted on

Spread Operator และ Rest Operator ในภาษา JavaScript

Spread Operator คืออะไร ?

Spread Operator เป็นการกระจายค่าออกมาเพื่อนำไปใช้ในส่วนอื่น
ถ้าเป็น Array

const a = [1,2,3]
const b = [...a,4]

...a เป็นการกระจายค่าทั้งหมดในตัวแปร a
เปรียบเสมือน const b = [1,2,3,4]
ดังนั้นเมื่อแสดงผลออกมาจะได้

console.log(b) // [1, 2, 3, 4]

ถ้าเป็น Object จะคล้าย ๆ กัน

const myName = { name: "A" }
const person = {...myName, myAge: 20}

Rest Operator คืออะไร ?

Rest Operator เป็นการเขียนในส่วนที่เป็นตัวแปรที่รับเข้ามาในฟังก์ชัน
โดยที่ไม่จำเป็นต้องเขียนไว้ว่าจะต้องรับค่ามากี่ตัวแปร
แต่จะสามารถเขียนเป็น ... เพื่อให้ parameter ที่รับมาทั้งหมดเก็บไว้ในที่เดียว
ตัวอย่างเช่น

const filter = (...args) => args.filter(arg => arg > 5)
console.log(filter(1,2,3,4,5,6,7,8,9))

ผลลัพที่ได้คือ [6, 7, 8, 9]

Discussion (0)