...
(สามจุดใน Javascript) เรียกว่า Spread Syntax หรือ Spread Operator สิ่งนี้อนุญาตให้ iterable เช่นนิพจน์อาร์เรย์หรือสตริงที่จะขยายหรือการแสดงออกวัตถุที่จะขยายทุกที่ สิ่งนี้ไม่เฉพาะเจาะจงสำหรับการโต้ตอบ มันเป็นผู้ประกอบการ Javascript
คำตอบทั้งหมดเหล่านี้ที่นี่มีประโยชน์ แต่ฉันต้องการแสดงรายการ Case การใช้งานเชิงปฏิบัติที่เป็นประโยชน์ของไวยากรณ์การแพร่กระจาย (Spread Operator)
1. รวมอาร์เรย์ (เชื่อมต่ออาร์เรย์)
มีหลายวิธีในการรวมอาร์เรย์แต่ผู้ประกอบการแพร่กระจายช่วยให้คุณสามารถวางนี้ได้ทุกที่ในอาร์เรย์ หากคุณต้องการรวมสองอาร์เรย์และองค์ประกอบสถานที่ที่จุดใด ๆ ภายในอาร์เรย์คุณสามารถทำดังนี้:
var arr1 = ['two', 'three'];
var arr2 = ['one', ...arr1, 'four', 'five'];
// arr2 = ["one", "two", "three", "four", "five"]
2. การคัดลอกอาร์เรย์
เมื่อเราต้องการสำเนาของอาร์เรย์ที่เราใช้ในการมีArray.prototypr.slice ()วิธีการ แต่คุณสามารถทำเช่นเดียวกันกับผู้ดำเนินการแพร่กระจาย
var arr = [1,2,3];
var arr2 = [...arr];
// arr2 = [1,2,3]
3. ฟังก์ชั่นการโทรโดยไม่ต้องสมัคร
ใน ES5 เมื่อต้องการส่งผ่านอาร์เรย์ของตัวเลขสองจำนวนไปยังdoStuff()
ฟังก์ชันคุณมักใช้เมธอดFunction.prototype.apply ()ดังนี้:
function doStuff (x, y, z) { }
var args = [0, 1, 2];
// Call the function, passing args
doStuff.apply(null, args);
อย่างไรก็ตามโดยใช้ตัวดำเนินการสเปรดคุณสามารถส่งผ่านอาร์เรย์ไปยังฟังก์ชันได้
doStuff(...args);
4. อาร์เรย์การทำลายล้าง
คุณสามารถใช้ destructuring และตัวดำเนินการส่วนที่เหลือร่วมกันเพื่อแยกข้อมูลออกเป็นตัวแปรตามที่คุณต้องการ:
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }
5. ฟังก์ชันอาร์กิวเมนต์เป็นพารามิเตอร์ที่เหลือ
ES6 ยังมีจุดสามจุด (... ) ซึ่งเป็นพารามิเตอร์ที่เหลือที่รวบรวมอาร์กิวเมนต์ที่เหลืออยู่ทั้งหมดของฟังก์ชันในอาร์เรย์
function f(a, b, ...args) {
console.log(args);
}
f(1,2,3,4,5);
// [ 3, 4, 5 ]
6. การใช้ฟังก์ชันทางคณิตศาสตร์
ฟังก์ชั่นใด ๆ ที่ใช้การแพร่กระจายเป็นอาร์กิวเมนต์สามารถใช้งานโดยฟังก์ชั่นที่สามารถยอมรับจำนวนของข้อโต้แย้ง
let numbers = [9, 4, 7, 1];
Math.min(...numbers); // 1
7. การรวมสองวัตถุ
คุณสามารถใช้ตัวดำเนินการการแพร่กระจายเพื่อรวมวัตถุสองอย่าง นี่เป็นวิธีที่ง่ายและสะอาดกว่าในการทำ
var carType = {
model: 'Toyota',
yom: '1995'
};
var carFuel = 'Petrol';
var carData = {
...carType,
carFuel
}
console.log(carData);
// {
// model: 'Toyota',
// yom: '1995',
// carFuel = 'Petrol'
// }
8. แยกสตริงออกเป็นอักขระที่แยกต่างหาก
คุณสามารถใช้ตัวดำเนินการสเปรดเพื่อกระจายสตริงเป็นอักขระแยกต่างหาก
let chars = ['A', ...'BC', 'D'];
console.log(chars); // ["A", "B", "C", "D"]
คุณสามารถคิดถึงวิธีการเพิ่มเติมในการใช้ตัวดำเนินการสเปรด สิ่งที่ฉันระบุไว้ที่นี่เป็นกรณีการใช้งานที่เป็นที่นิยมของมัน