کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش متدهای آرایه Array Methods در ES6

آموزش کار با متدهای آرایه Array Methods در ES6:

در این درس به آموزش کار با متدهای جدید آرایه ها در ES6 خواهیم پرداخت.برخی از متدهای جدیدی که در ES6 معرفی شده اند عبارتند از ()Array.of و ()Array.from و ... که در جدول زیر نشان داده شده اند:

ردیف
نام متد Method
شرح
نسخه جاوا اسکریپت
1
()Array.from
این متد مقادیر شبیه آرایه و قابل تکرار را به آرایه تبدیل می کند.
ECMAScript6
2
()Array.of
به جای تعداد آرگومان ها یا نوع آنها از تعداد متغیر آرگومان ها یک شی نمونه ایجاد می کند.
ECMAScript6
3
()Array.prototype.copyWithin
این متد یک بخشی از یک آرایه را در مکان دیگری در همان آرایه کپی می کند.
ECMAScript6
4
()Array.prototype.find
این متد، بر حسب معیاری که به آن ارسال شود، یک مقدار از آرایه را پیدا کرده و بر می گرداند.
ECMAScript6
5
()Array.prototype.findIndex
این متد، شماره اندیس (Index) اولین عضوی از آرایه که مطابق با شرط تعیین شده برای آن باشد را پیدا کرده و بر می گرداند.
ECMAScript6
6
()Array.prototype.entries
یک شی آرایه ای قابل تکرار را بر می گرداند که به وسیله آن از طریق ساختارهای مثل حلقه، می توان درون کلیدها (keys) و مقادیر (values) آنها حرکت کرد.
ECMAScript6
7
()Array.prototype.keys
این متد یک شی تکرارپذیر از آرایه را به همراه کلیدهای آنها (keys) بر می گرداند.
ECMAScript6
8
()Array.prototype.values
این متد مقادیر (values) اعضای آرایه را بر می گرداند.
ECMAScript6
9
()Array.prototype.fill
این متد، اعضای تعیین شده آرایه را با مقادیر مورد نظر پر می کند.
ECMAScript6

در ادامه به تشریح کامل متدهای فوق همراه با مثال عملی و ارائه سورس کد و خروجی آنها خواهیم پرداخت.

آموزش کار با متد ()Array.from در ES6:

کارکرد اصلی متد ()Array.from، قادر ساختن برنامه جاوا اسکریپت به ساخت آرایه جدید از روی اشیای شبیه آرایه است. این متد مقادیر (values) و مقادیر قابل تکرار (iterable values) مثل مجموعه ها (set) و نقشه ها (map) را به آرایه تبدیل می کند. ساختار دستوری استفاده از متد ()Array.from به صورت زیر است:

Array.from(object, mapFunction, thisValue)  
            

انواع پارامترهای این متد در ساختار دستوری آن عبارتند از :

  • شی object: مقدار این پارامتر همیشه اجباری است. این پارامتر شی ایی (object) که می خواهید به آرایه تبدیل کند را مشخص می کند.
  • تابع mapFunction: این پارامتر اختیاری است. این پارامتر یک تابع map function را تعیین می کند تا بر روی هر عضو آرایه اجرا شود.
  • thisValue: این پارامتر هم اختیاری است. مقداری است که در هنگام اجرای تابع mapFunction برای پارامتر this به کار می رود.

مثال: در کد مثال عملی زیر، با استفاده از متد ()Array.from کلمه ‘javaTpoint’ را به کاراکترهای سازنده آن تبدیل کرده و به صورت یک آرایه در آورده ایم:

let name = Array.from('javaTpoint')  
  
console.log(name) 
            

خروجی :

[
  'j', 'a', 'v', 'a',
  'T', 'p', 'o', 'i',
  'n', 't'
]
            

آموزش کار با تابع ()Array.of در ES6:

در ES5، هنگامی که یک مقدار عددی تکی را به تابع سازنده آرایه ارسال می کردید (مثلا num[5])، یک آرایه با تعداد اعضای برابر آن عدد ایجاد می کرد. متد ()Array.of روش جدیدی برای ایجاد آرایه است که این رفتار ES5 را تغییر داده است.
در صورت استفاده از این متد، چنانچه بخواهید یک آرایه را فقط با یک مقدار عددی در تابع سازنده آن ایجاد کنید، ES6 یک آرایه با یک عضو و مقدار آن عدد به جای یک آرایه با تعداد اعضایی برابر آن، ایجاد می کند.
مثال: در کد مثال عملی زیر یک آرایه جدید به نام name و با قرار دادن عدد 42 در تابع سازنده آرایه ایجاد کرده ایم. به دلیل استفاده از متد ()Array.of، به جای اینکه برنامه یک آرایه با 42 عضو ایجاد کند، یک آرایه با تک عضو و مقدار 42 خواهیم ساخت:

let name = Array.of(42)  
  
console.log(name)  
console.log(name.length)  
            

خروجی :

[ 42 ]
1
            

آموزش کار با متد ()Array.prototype.copyWithin:

این متد یک قابلیت جدید و جالبی است که به کتابخانه ES6 اضافه شده است. این متد، یک بخش از یک آرایه در محلی از همان آرایه کپی می کند. در نهایت، آرایه را بدون تغییر در تعداد اعضا و با همان طول قبلی، بر می گرداند.

نکته :

به جای اضافه کردن آیتم های جدید به آرایه، متد ()Array.prototype.copyWithin، اطلاعات را بر روی عناصر آرایه اولیه رونویسی می کند.

ساختار دستوری استفاده از این متد به شرح زیر است:

array.copyWithin(target, start, end)  
            

در ساختار فوق، انواع پارامترها به شرح زیر هستند:

  • target: استفاده از این پارامتر اجباری بوده و اندیس (index) عضوی که می خواهیم عملیات کپی کردن از آن شروع شود را تعیین می کند.
  • start: استفاده از این پارامتر اختیاری است. این پارامتر اندیس (index) عضوی که عملیات رونویسی اطلاعات بر روی آنها از آنها شروع می شود را تعیین می کند. مقدار پیش فرض صفر است. اگر مقدارش منفی باشد، نقطه شروع از انتهای آرایه شمرده می شود.
  • end: استفاده از این پارامتر نیز اختیاری است. این پارامتر اندیس (index) عضوی که عملیات رونویسی باید در آن نقطه تمام شود را تعیین می کند.
    مقدار پیش فرض آن، طول آرایه است.

مثال: در کد مثال عملی زیر، حالت مختلف استفاده از متد ()Array.prototype.copyWithin را نشان داده ایم:

const num = [1,2,3,4,5,6,7,8,9,10];  
const num1 = [1,2,3,4,5,6,7,8,9,10];  
const num2 = [1,2,3,4,5,6,7,8,9,10];  
console.log(num.copyWithin(1,3,5));  
console.log(num1.copyWithin(1,3)); //omitting the parameter end  
console.log(num2.copyWithin(1)); //omitting the parameters start and end 
            

خروجی :

[
  1, 4, 5, 4,  5,
  6, 7, 8, 9, 10
]
[
  1, 4,  5, 6,  7,
  8, 9, 10, 9, 10
]
[
  1, 1, 2, 3, 4,
  5, 6, 7, 8, 9
]
            

آموزش کار با متد ()Array.prototype.Find:

این متد نیز یکی از متدهای جدیدی است که در ES6 معرفی شده است. این متد، مقداری در آرایه که با شرط و اطلاعات داده شده با آن مطابقت داشته باشد را بر می گرداند. این متد اولین عنصری در آرایه که با عبارت تعیین شده برایش مطابقت داشته باشد را به عنوان خروجی بر می گرداند.
ساختار دستوری استفاده از این متد به صورت زیر است:

array.find(callback(currentValue, index, arr),thisValue)  
            

انواع پارامترهای موجود در ساختار فوق عبارتند از:

  • callback: این تابع شرط پیدا کردن مقدار هدف را تعیین کرده و بر روی اعضای آرایه اجرا می شود.
  • current Value: این پارامتر اجباری بوده و مقدار عنصر جاری را تعیین می کند.
  • index: استفاده از این پارامتر اختیاری است. این پارامتر اندیس پارامتر جاری را مشخص می کند.
  • arr: این پارامتر نیز اختیاری بوده و نام آرایه ای که قرار است متد ()find رویش اجرا شود را تعیین می کند.
  • thisValue: این پارامتر نیز اختیاری بوده و مقداری است که برای عبارت this در هنگام فراخوانی تابع callback به کار می رود.

مثال: در کد مثال عملی زیر یک آرایه به نام arr تعریف کرده و سپس توسط متد ()Array.prototype.find گفته ایم اولین عنصری که مقدارش از 20 بیشتر است را برگرداند:

var arr=[5,22,19,25,34];    
var result=arr.find(x=>x>20);    
console.log(result);  
            

خروجی :

22
            
راهنمایی :

متد ()find در ES6 شبیه متد ()filter در ES5 نیست. زیرا متد filter همواره آرایه ای از مقادیر مطابق با درخواست (یک یا چندین مورد همسان) را بر می گرداند اما متد ()find فقط یک مقدار بر می گرداند.

آموزش کار با متد ()Array.prototype.findIndex:

این متد اندیس (index) اولین عضو آرایه که با شرط تعیین شده برایش مطابقت دارد را بر می گرداند. اگر هیچ کدام از اعضای آرایه مطابق با شرط متد نباشند، خروجی آن 1- خواهد بود.
ساختار دستوری استفاده از متد ()Array.prototype.findIndex به صورت زیر است:

array.findIndex(callback(value,index,arr),thisArg)     
            

مثال: در کد مثال عملی زیر یک آرایه به نام arr را تعریف و مقداردهی کرده ایم. سپس توسط متد ()findIndex، اندیس (Index) اولین عنصری که مقدارش بیشتر از 20 باشد را برگردانده ایم:

var arr=[5,22,19,25,34];    
var result=arr.findIndex(x=>x>20);    
console.log(result)  
            

خروجی :

1
            

آموزش کار با متد ()Array.prototype.enteries :

این متد، یک شی قابل تکرار آرایه ای (array iterator object) را بر می گرداند که از طریق آن می توانید (با استفاده از ساختارهایی مثل حلقه) درون کلیدها (key) و مقادیر (values) اعضای آرایه اصلی حرکت نمایید.
تابع ()entries درواقع یک آرایه دو بعدی یا آرایه ای از آرایه بر می گرداند که در آن هر عضو به صورت [index, value] است.
ساختار دستوری استفاده از تابع ()entries به صورت زیر است:

array.entries()  
            

مثال: در مثال عملی زیر یک آرایه به نام colors تعریف کرده ایم و سپس توسط متد ()entries اعضای آن را به صورت یک آرایه دو بعدی کلید/مقدار درآورده و توسط یک حلقه for در خروجی نشان داده ایم:

var colours = ["Red", "Yellow", "Blue", "Black"];  
var show = colours.entries();  
  
for (i of show) {  
  console.log(i);  
}  
            

خروجی :

[ 0, 'Red' ]
[ 1, 'Yellow' ]
[ 2, 'Blue' ]
[ 3, 'Black' ]
            

مثال عملی 2: در کد مثال فوق، به جای استفاده از حلقه for…of می توانیم از عملگر Spread یا همان 3 نقطه برای ارسال آرایه به دستور ()console.log استفاده کرده که همان خروجی را خواهد داشت:

var colours = ["Red", "Yellow", "Blue", "Black"];  
var show = colours.entries();  
console.log(...show);  
            

خروجی :

[ 0, 'Red' ] [ 1, 'Yellow' ] [ 2, 'Blue' ] [ 3, 'Black' ]
            

آموزش کار با متد ()Array.prototype.keys:

این متد عملکردی مشابه متد ()Array.entries دارد. همانطور که از نامش پیداست، این متد یک شی آرایه ای قابل تکرار (array iterator object) را بر می گرداند که آرایه ای از کلیدها (keys) عناصر آرایه مورد استفاده است.
ساختار دستوری استفاده از متد ()Array.prototype.keys به صورت زیر است:

array.keys() 
            

مثال: در کد مثال عملی زیر، یک آرایه به نام colors تعریف کرده و سپس توسط متد ()keys، کلیدهای اعضای آن را در خروجی نمایش داده ایم:

var colours = ["Red", "Yellow", "Blue", "Black"];  
var show = colours.keys();  
console.log(...show);  
            

خروجی :

0 1 2 3
            

آموزش کار با متد ()Array.prototype.values:

این متد همانند متدهای ()Array.keys و ()Array.entries است ، با این تفاوت که آرایه ای از مقادیر (Values) آرایه هدف را بر می گرداند. ساختار دستوری استفاده از متد ()Array.Values به صورت زیر است:

array.values()  
            

مثال: در کد مثال عملی زیر نیز آرایه colors را به متد ()values ارسال کرده ایم تا مقادیر اعضای آن را در خروجی نشان دهیم:

var colours = ["Red", "Yellow", "Blue", "Black"];  
var show = colours.values();  
console.log(...show);  
            

خروجی :

Red Yellow Blue Black
            

آموزش کار با متد ()Array.prototype.fill:

این متد آرایه مورد نظر را با یک مقدار ثابت (Static Value) پر می کند. از مقدار مورد نظر می توانید برای پر کردن بخشی یا تمام آرایه استفاده کنید. این مقدار باعث تغییر آرایه اولیه خواهد شد.
می توانید نقطه شروع و پایان پر شدن اعضای آرایه با مقدار هدف را تعیین کنید، اگر نقاط خاصی مشخص نشود، کل آرایه با مقدار جدید پر می شود. ساختار دستوری استفاده از متد ()fill به صورت زیر است:

array.fill(value, start, end)  
            

در ساختار فوق، پارامترهای مورد استفاده عبارتند از:

  • value: این پارامتر اجباری بوده و مقداری که می خواهید آرایه با آن پر شود را تعیین می کند.
  • start: این پارامتر اندیس (Index) محل ی از آرایه که عملیات پر کردن مقادیر از آن شروع می شود را تعیین می کند. استفاده از این پارامتر اختیاری بوده و مقدار پیش فرض آن صفر است.
  • end: این پارامتر نیز اندیس (Index) محل توقف عملیات پر شدن آرایه را تعیین می کند. استفاده از آن اختیاری بوده و مقدار پیش فرض ش کل طول آرایه است.
نکته :

بهتر است نقاط شروع (start) و پایان (end) عملیات پر کردن آرایه را مشخص نمایید، در غیر اینصورت می توان کل اطلاعات آرایه را از بین برد.

مثال: در کد مثال عملی زیر، یک آرایه به نام colors تعریف کرده ایم و سپس توسط متد ()fill به آن گفتیم از اندیس 2 تا 4 را با مقدار “Green” پر کند:

var colours = ["Red", "Yellow", "Blue", "Black"];  
var show = colours.fill("Green",2,4);  
console.log(...show);  
            

خروجی :

Red Yellow Green Green
            

آموزش متدهای آرایه در جاوا اسکریپت:

در جدول زیر، متدهای کار با آرایه در جاوا اسکریپت را به همراه کاربرد آنها شرح داده ایم:

شماره
نام متد
شرح
نسخه جاوا اسکریپت
1
()concat
این متد دو یا چندین آرایه را با هم پیوند زده و یک شی جدید آرایه بر می گرداند.
ECMAScript1
2
()join
این متد، مقادیر اعضای آرایه را همانند مقادیر رشته ای متنی (String) به هم می چسباند.
ECMAScript 1
3
()Pop
از این متد برای حذف آخرین عنصر آرایه و برگرداندن مقدار آن استفاده می شود.
ECMAScript 1
4
()push
این متد یک یا چندین عنصر را به انتهای آرایه مورد نظر اضافه می کند.
ECMAScript 1
5
()reverse
این متد ترتیب قرارگیری اعضای آرایه را برعکس می کند.
ECMAScript 1
6
()shift
این متد اوین عضو آرایه را حذف کرده و مقدار آن را بر می گرداند.
ECMAScript 1
7
()slice
این متد بخشی از یک آرایه را برایش مشخص کرده، کپی کرده و بر می گرداند.
ECMAScript 1
8
()sort
این متد اعضای آرایه را بر حسب معیار مورد نظر مرتب کرده و بر می گرداند.
ECMAScript 1
9
()toString
این متد کلیه اعضای آرایه را به صورت متنی (string) که با کاما از هم جدا شده اند، درآورده و بر می گرداند.
ECMAScript 1
10
()unshift
این متد یک یا چندین عضو را به ابتدای آرایه مورد نظر اضافه می کند.
ECMAScript 1
11
()splice
این متد یک یا چند عضو مورد نظر را از آرایه هدف حذف کرده یا به آن اضافه می کند.
ECMAScript 1
12
()every
این متد چک می کند آیا کلیه اعضای یک آرایه با شرایط تعیین شده در تابع، مطابقت دارند یا خیر.
ECMAScript 5
13
()filter
این متد یک آرایه جدید از آرایه هدف را بر می گرداند که اعضای آن مطابق با شرایط تعریف شده و تابع مقایسه هستند.
ECMAScript 5
14
()forEach
این متد یک تابع مورد نظر را بر روی تک تک اعضای یک آرایه اجرا می کند.
ECMAScript 5
15
()isArray
این متد چک می کند آیا شی (object) ارسالی به آن یک آرایه است یا خیر. اگر شی ارسالی آرایه باشد مقدار درست (true) و در غیر اینصورت مقدار غلط (false) را بر می گرداند.
ECMAScript 5
16
()indexOf
این متد به دنبال یک عضو هدف در آرایه گشته و اندیس (Index) آن را بر می گرداند.
ECMAScript 5
17
()lastIndexOf
این متد به دنبال یک عضو خاص در آرایه می گردد و اندیس (index) آخرین المنتی که با شرایط مورد نظر مطابقت داشته باشد را بر می گرداند.
ECMAScript 5
18
()map
این متد یک تابع را بر روی تک تک اعضای یک آرایه اجرا کرده و نتایج حاصل را به عنوان یک آرایه جدید بر می گرداند.
ECMAScript 5
19
()reduce
این متد آرایه هدف را به یک متغیر واحد تبدیل کرده و بر می گرداند.
ECMAScript 5
20
()some
خروجی این متد از نوع درست یا غلط (Boolean) است. این متد یک شرط را بر روی تک تک اعضای آرایه تست کرده و در صورت درست بودن مقدار true و در غیر اینصورت مقدار false بر می گرداند.
ECMAScript 3
1400/06/16 2487 0
نظرات شما

نظرات خود را ثبت کنید...