آرایه

آرایه نوعی متغیر است که لیستی از آدرسهای مجموعه ای از داده های همنوع یا غیر همنوع را در خود ذخیره می کند. تعریف چندین متغیر از یک نوع برای هدفی یکسان بسیار خسته کننده است. مثلا اگر بخواهید صد متغیر از نوع اعداد صحیح تعریف کرده و از آنها استفاده کنید. مطمئنا تعریف این همه متغیر بسیار کسالت آور و خسته کننده است. اما با استفاده از آرایه می توان همه آنها را در یک خط تعریف کرد. در زیر راهی ساده برای تعریف یک آرایه نشان داده شده است :

var numbers = [];

numbers نام آرایه را نشان می دهد. هنگام نامگذاری آرایه بهتر است که نام آرایه نشان دهنده نوع آرایه باشد. به عنوان مثال برای نامگذاری آرایه ای که اعداد را در خود ذخیره می کند از کلمه number استفاده کنید. حتی می توانیم به هنگام ایجاد آرایه مقادیر خانه های آن را نیز مشخص کنیم :

var numbers = [1, 2, 3, 4, 5];

در این مثال 5 مقدار در 5 آدرس از فضای حافظه کامپیوتر شما ذخیره می شود. مثالا بالا را به روش زیر هم می توان پیاده سازی کرد :

var numbers = [];

numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;

اندیس یک آرایه از صفر شروع شده و به یک واحد کمتر از طول آرایه ختم می شود.به عنوان مثال شما یک آرایه 5 عضوی دارید، اندیس آرایه از 0 تا 4 می باشد چون طول آرایه 5 است پس 1-5 برابر است با 4. این بدان معناست که اندیس 0 نشان دهنده اولین عضو آرایه است و اندیس 1 نشان دهنده دومین عضو و الی آخر. برای درک بهتر مثال بالا به شکل زیر توجه کنید :
arrays-12-13-10-01
به هر یک از اجزاء آرایه و اندیسهای داخل کروشه توجه کنید.کسانی که تازه شروع به برنامه نویسی کرده اند معمولا در گذاشتن اندیس دچار اشتباه می شوند و مثلا ممکن است در مثال بالا اندیسها را از 1 شروع کنند. در مثال های بالا، ما یک آرایه با طول نا مشخص تعریف کردیم. یعنی مشخص نکردیم که چه تعداد عنصر قرار است در آرایه قرار بگیرند. اگر بخواهیم که تعداد عناصر را هم مشخص کنیم می توانیم از خاصیت length به صورت زیر استفاده کنیم:

var numbers = [];
numbers.length = 5;  

یک روش دیگر برای تعریف آرایه استفاده از کلمه کلیدی new به صورت زیر است:

var numbers = new Array();  

می توان عناصر آرایه را در داخل پرانتز هم نوشت:

var numbers = new Array(1, 2, 3, 4, 5);  

آرایه بالا را به صورت زیر هم می توان تعریف کرد:

var numbers = new Array(5);  

numbers[0] = 1;
numbers[1] = 2;
numbers[2] = 3;
numbers[3] = 4;
numbers[4] = 5;

عدد 5 در داخل پرانتز کد بالا بدین معنی است که ما می خواهیم 5 عنصر را در داخل آرایه ذخیره کنیم.

دستیابی به مقادیر آرایه با استفاده از حلقه for

در زیر مثالی در مورد استفاده از آرایه‌ها آمده است. در این برنامه 5 مقدار از کاربر گرفته شده و میانگین آنها حساب می‌شود:

 1: var numbers = new Array(5);                             
 2: var total   = 0;                                       
 3: var average;                                      
 4:                                                      
 5: for (var i = 0; i < numbers.length; i++)              
 6: {  
 7:     numbers[i] = parseInt(prompt("Enter a number: "));
 8:     console.log(`Number ${i}: ${numbers[i]}`);    
 9: }                                                    
10:                                                      
11: for (var i = 0; i < numbers.length; i++)             
12: {                                                    
13:     total += numbers[i];                             
14: }                                                    
15:                                                      
16: average = total / numbers.length;                    
17:                                                      
18: console.log(`Average = ${average}`);

با اجرای برنامه بالا، 5 بار پنجره ای به شما نمایش داده می شود که هر بار شما باید یک عدد را وارد کنید تا این عدد در داخل یکی از خانه های آرایه قرار بگیرد. در خط 1 یک آرایه تعریف شده است که می‌تواند 5 عدد صحیح را در خود ذخیره کند. خطوط 2 و 3 متغیرهایی تعریف شده‌اند که از آنها برای محاسبه میانگین استفاده می‌شود. توجه کنید که مقدار اولیه total صفر است تا از بروز خطا هنگام اضافه شدن مقدار به آن جلوگیری شود. در خطوط 5 تا 9 حلقه for برای تکرار و گرفتن ورودی از کاربر تعریف شده است. از خاصیت طول (length) ارائه برای تشخیص تعداد اجزای آرایه استفاده می‌شود. اگر چه می‌توانستیم به سادگی در حلقه for مقدار 5 را برای شرط قرار دهیم ولی استفاده از خاصیت طول آرایه کار راحت‌تری است و می‌توانیم طول آرایه را تغییر دهیم و شرط حلقه for با تغییر جدید هماهنگ می‌شود. در خط 7 ورودی دریافت شده از کاربر به نوع int تبدیل و در آرایه ذخیره می‌شود. اندیس استفاده شده در number (خط 7) مقدار i جاری در حلقه است. برای مثال در ابتدای حلقه مقدار i صفر است بنابراین وقتی در خط 7 اولین داده از کاربر گرفته می‌شود اندیس آن برابر 0 می‌شود. در تکرار بعدی i یک واحد اضافه می‌شود و در نتیجه در خط 7 و بعد از ورود دومین داده توسط کاربر اندیس آن برابر 1 می‌شود. این حالت تا زمانی که شرط در حلقه for برقرار است ادامه می‌یابد. خط 8 خم اعدادی را که شما در پنجره وارد می کنید در محیط console چاپ می کند.

در خطوط 14-11 از حلقه for دیگر برای دسترسی به مقدار هر یک از داده‌های آرایه استفاده شده است. در این حلقه نیز مانند حلقه قبل از مقدار متغیر شمارنده به عنوان اندیس استفاده می‌کنیم. هر یک از اجزای عددی آرایه به متغیر total اضافه می‌شوند. بعد از پایان حلقه می‌توانیم میانگین اعداد را حساب کنیم (خط 16). مقدار total را بر تعداد اجزای آرایه (تعداد عددها) تقسیم می‌کنیم. برای دسترسی به تعداد اجزای آرایه می‌توان از خاصیت length آرایه استفاده کرد. خط 18 مقدار میانگین را در صفحه نمایش چاپ می‌کند. خروجی برنامه بالا می تواند به صورت زیر باشد (البته ممکن است برای شما متفاوت باشد):

Number 0: 95
Number 1: 85
Number 2: 80
Number 3: 87
Number 4: 92
Average =  87.8

آرایه‌ها در برخی شرایط بسیار پر کاربرد هستند و تسلط شما بر این مفهوم و اینکه چطور از آنها استفاده کنید بسیار مهم است.