ตัวดำเนินการส่วนที่เหลือ (...) ช่วยให้เราสามารถเรียกใช้ฟังก์ชันที่มีอาร์กิวเมนต์จำนวนเท่าใดก็ได้ จากนั้นจึงเข้าถึงอาร์กิวเมนต์ส่วนเกินเหล่านี้เป็นอาร์เรย์ ตัวดำเนินการส่วนที่เหลือยังช่วยให้เราสามารถทำลายอาร์เรย์หรือวัตถุได้
ตัวดำเนินการสเปรด (…) ช่วยให้เราขยายอาร์เรย์แบบ iterable ออกเป็นองค์ประกอบต่างๆ ได้
ตัวอย่าง
ต่อไปนี้เป็นรหัสที่แสดงตัวดำเนินการที่เหลือและกระจายใน JavaScript -
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .sample, .result { font-size: 20px; font-weight: 500; } </style> </head> <body> <h1>JavaScript Rest and spread operator</h1> <div class="sample"></div> <div style="color: green;" class="result"></div&g; <button class="btn">Spread Operator</button> <h3> Click on the above button to concatenate array using spread operator </h3> <button class="btn">Rest Operator</button> <div style="color: green;" class="result"></div> <h3> Click on the above button to add some numbers using rest operator </h3> <script> let sampleEle = document.querySelector(".sample"); let btnEle = document.querySelectorAll(".btn"); let resEle = document.querySelectorAll(".result"); let arr = [2, 3, 4, 5]; let arr1 = ["a", "b", "c", "d"]; sampleEle.innerHTML = "arr = " + arr + "<br> arr1 = " + arr1; function addArr(num, ...ar) { let sum = num; ar.forEach((item) => { sum += item; }); resEle[1].innerHTML = "Sum of the elements = " + sum; } btnEle[0].addEventListener("click", () => { resEle[0].innerHTML = "Concatenated array = " + [...arr, ...arr1]; }); btnEle[1].addEventListener("click", () => { addArr(44, 11, 35, 44, 22, 99); }); </script> </body> </html>
ผลลัพธ์
รหัสข้างต้นจะสร้างผลลัพธ์ต่อไปนี้ -
เมื่อคลิกปุ่ม “ตัวดำเนินการสเปรด” −
เมื่อคลิกปุ่ม “Rest Operator” −