
یکی از متدهای کاربردی در جاوا اسکریپت متد یا کلاس ()set هست که امروز و دراین مقاله به صورت کامل برای شما توضیح خواهیم داد و مثالهایی در این زمینه خواهیم زد.
تاریخچه متد ()set :
متد set در سال 2015 و در ES6 رونمایی شد، و ساختار دادهای آن شباهت زیادی به آرایهها (Array) دارد، اما برای این طراحی شده که مقادیر یونیک رو تشخیص بده و درون خودش قرار بده. با رونمایی از این متد دیگ شما بار اضافی کدنویسی برای فیلترکردن مقادیر یونین یا غیر یونیک رو دیگ ندارید و با چند خط کد به راحتی این کار رو انجام میدید.
متدهای کلاس ()set :
set نیز دارای متدهایی است که شامل:
- ()size
- ()add
- ()has
- ()delete
متد size : طول set رو بهمون اعلام میکنه مثلا اگر set دارای 5 مقار باشد، عدد 5 رو برامون برمیگردونه.
متد add : اگر بخواهیم مقداری به set اضافه کنیم از این متد استفاده میکنیم.
متد has : برای این است که آیا مقدار مورد نظر درون set قرار دارد یا خیر.
متد delete : برای حذف مقادیر درون set استفاد میشود.
در کل ساختار این کلاس به شکل زیر است:
let mySet = new set()
mySet.add(1)
// اضافه کردن یک مقدار یونیک
mySet.add(2)
mySet.add(2)
//مقدار تکراری و نادیده گرفتن آن توسط کلاس ست
log(mySet.size)
// خرورجی 2
log(mySet.has(2))
// true
log(mySet.(3))
// false
log(mySet.delet(2))
// 1
مسائل کاربردیتر متد ()set :
خب حالا چطور میتوان با این متد در مسائل واقعی کار کنیم؟
فرض کنید که یه آرایه از اعداد تکراری رو داریم :
let numbers = [1, 2, 3, 3, 2, 4, 1, 5]
اگر به روش دیگری بخواهیم حل کنیم، کمی بار کدنویسی دارد که :
let unique = numbers.reduce((acc , num) => {
if(!acc.includes(num) {
acc.push(num)}
return acc} , [])
همونطور که در کد بالا مشاهده میکنید به وسیله متد reduce در آرایهها تونستیم این کار رو انجام بدیم،منتهی کدنویسی و کمی خلاقیت باید به خرج میدادیم که این اتفاق بیفته، ولی با متد set خیلی راحتتر و بدون کد اضافهای این کار رو انجام میدهیم:
let unique2 = [... New Set(numbers)]
// [1, 2, 3, 4, 5]
log(unique2)
خب امیدواریم این مقاله برای شما مفید بوده باشه. اگر در مورد کلاس set ابهاماتی داشتید یا سوالی ذهنتون رو درگیر کرده بود در قسمت نظرات درج کنید.