8 روش استفاده از اپراتور Spread در JavaScript
در این مقاله قصد دارم از spread operator ... که در es6 معرفی شده صحبت کنم. از انواع کاربردها و استفاده هایی که قرار هستش توی برنامه نویسی جاوا اسکریپت داشته باشیم توی این مقاله میگم خدمتتون.
1- استفاده در log کردن
برای log گرفتن از روی اشیایی قابل تکرار یا همون iterable objects استفاده میشه
let fruits = ['?', '?', '?', '?'];
console.log(...fruits); //? ? ? ?
2- برای کپی کردن آرایه ها و object
//Array
let fruits = ['?', '?', '?', '?'];
let fruitsCopy = [ ...fruits ];
console.log(...fruitsCopy); //? ? ? ?
//objects
let user = {name : "John", age : 20 };
let userCopy = {...user}
راستی توی این مقاله مفصل درباره کپی کردن آرایه و object ها توی متغیرها صحبت کردم.
3- ادغام یا merge کردن دو یا بیشتر آرایه یا object در یک متغیر
//Array
let fruits = ['?', '?', '?', '?'];
let vegetables = ['?', '?', '?'];
let fruitsAndVeg = [...fruits, ...vegetables];
//objects
let user1 = {name : "John", age : 20 };
let user2 = {name : "Ram", salary: '20K' };
let userCopy = {...user1, ...user2};
userCopy ; // {name : "Ram", age :20 , salary : '20K'};
نکته : هنگام ادغام objects، اگر یک key از قبل وجود داشته باشد ، آخرین شی با همان key جایگزین می شه.
4- برای ارسال arguments در یک متد
function sum(a, b) {
return a+b;
}
let num = [1,2];
sum(...num); // 3
//متدهای ریاضی
let num = [5,9,3,5,7];
Math.min(...num);
Math.max(...num);
5- در Destructuring variable
//Array
let [melon, ...fruits ] = ['?', '?', '?', '?'];
melon; //?
fruits; // [ '?', '?', '?']
//objects
let user = {name : "Ram", age: 20, salary: '20K', job : "Tester" };
let { name, age, ...details } = user;
name; // Ram
age; // 20
details; // {salary: '20K', job : 'Tester'};
6- تبدیل NodeList Object به Array
let nodeList = document.querySelectorAll('.class')
var nodeArray = [...nodeList]
7- تبدیل رشته به کاراکتر
let name = "Ram"
let chars = [...name];
8- موارد تکراری را از یک آرایه حذف کنید
let num = [1, 3, 1, 3, 3, 1];
let uniqueNum = [...new Set(num)];
uniqueNum; //[ 1, 3 ]
خب به انتهای این مقاله رسیدیم امیدوارم که این مقاله آموزشی مورد توجهتون قرار گرفته باشه.
ممنون از توجهتون :)
مطلبی دیگر از این انتشارات
بررسی ویژگیهای جدید ECMAScript 2020
مطلبی دیگر از این انتشارات
سه الگوی پر کاربرد در ReactJS
مطلبی دیگر از این انتشارات
تفاوت Arrow فانکشن ها و توابع معمولی در جاوااسکریپت - بخش دوم