میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

آرایه ها در جاوا اسکریپت

آرایه ها (Arrays) در جاوا اسکریپت

آرایه چیست؟

آرایه یک متغیر خاص است که می تواند بیش از یک مقدار را بطور همزمان در خود نگه دارد.

اگر لیستی از اقلام (مثلا لیستی از اسامی ماشین ها) داشته باشید، ذخیره سازی نام خودروها در متغیرهای واحد می تواند به صورت زیر باشد:

var car1 = “Saab”;
var car2 = “Volvo”;
var car3 = “BMW”;

اگر چه یافتن یک خودرو در بین این سه خودرو کار آسانی است ولی آیا تصور کردید اگر بجای ۳ خودرو، ۳۰۰ خودرو داشتیم چه اتفاقی رخ می داد؟

راه حل یک آرایه است!

یک آرایه می تواند مقادیر زیادی را با یک نام ذخیره کند و شما می توانید با استفاده از یک عدد شاخص به مقادیر دسترسی داشته باشید.

ایجاد یک آرایه

استفاده از آرایه ای از مقادیر، ساده ترین راه برای ایجاد آرایه جاوا اسکریپت است.

سینتکس :

var array_name = [item1item2, …];
var cars = [“Saab”“Volvo”“BMW”];

فضاهای خالی و خطوط جدید مهم نیست، شما می توانید یک آرایه را در چندین خط تعریف کنید:

var cars = [
“Saab”,
“Volvo”,
“BMW”
];

قرار دادن کاما بعد از آخرین عنصر مانند (,”BMW”) در مرورگرها دارای نتایج متناقض است.

مثلا در IE 8 و قبل از آن ایجاد خطا می کند.

تعریف آرایه با استفاده از کلمه new جاوا اسکریپت

مثال زیر نیز یک آرایه ایجاد می کند و مقادیر را به آن اختصاص می دهد:

var cars = new Array(“Saab”“Volvo”“BMW”);

دو نمونه فوق دقیقا همانند هستند. نیازی به استفاده new Array()نیست
برای سادگی، خوانایی و سرعت اجرا، از اولین مورد استفاده کنید (روشی که نیازی به کلمه new ندارد).

دسترسی به عناصر یک آرایه

شما با ارجاع به عدد شاخص یا ایندکس به یک عنصر آرایه دسترسی خواهید داشت .

این عبارت به مقدار عنصر اول در آرایه cars دسترسی پیدا می کند :

var name = cars[];

توجه: ایندکس عناصر آرایه از ۰ شروع می شود.

[۰] اولین عنصر است. [۱] عنصر دوم است.

تغییر یک عنصر از آرایه

این عبارت مقدار عنصر اول آرایه cars را تغییر می دهد :

cars[] = “Opel”;

دسترسی به آرایه کامل

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

var cars = [“Saab”“Volvo”“BMW”];
document.getElementById(“demo”).innerHTML = cars;

آرایه ها شیء هستند

آرایه ها یک نوع خاص از اشیا هستند. عملگر typeofدر جاوا اسکریپت، مقدار “شی” را برای آرایه برمی گرداند.

اما، آرایه های جاوا اسکریپت بیشتر به عنوان آرایه تعریف می شوند.

آرایه ها برای دسترسی به عناصر خود از اعداد استفاده می کنند. در این مثال ، person[0] مقدار John را برمی گرداند:

var person = [“John”“Doe”۴۶];

اشیاء برای دسترسی به «اعضا» از نام استفاده می کنند. در این مثال، person.firstName مقدار John را برمی گرداند:

var person = {firstName:“John”, lastName:“Doe”, age:46};

عناصر آرایه نیز می توانند شیء باشند

متغیرهای جاوا اسکریپت می توانند شیء باشند. آرایه ها انواع خاصی از اشیاء هستند.

به همین دلیل شما می توانید متغیرهایی از انواع مختلف در یک آرایه داشته باشید.

شما می توانید شیء در آرایه داشته باشید. شما می توانید تابع در آرایه داشته باشید و همچنین شما می توانید آرایه ای درون آرایه داشته باشید:

myArray[] = Date.now;
myArray[1] = myFunction;
myArray[2] = myCars;

خصوصیت ها و متد های آرایه

قدرت واقعی آرایه های جاوا اسکریپت در درون خصوصیات و متد های آن نهفته است:

var x = cars.length;       //ویژگی length تعداد عناصر را برمی گرداند

var y = cars.sort();   // sort() آرایه ها را مرتب می کند

خصوصیت طول آرایه

خصوصیت length از یک آرایه، طول آرایه (تعداد عناصر آرایه) را برمی گرداند.

var fruits = [“Banana”“Orange”“Apple”“Mango”];
fruits.length;   //طول میوه ها ۴ است
خصوصیت length همیشه از بزرگترین شاخص آرایه، یکی بیشتر است (یعنی بزرگترین ایندکس آرایه + ۱ = طول آرایه).

ایجاد حلقه روی عناصر آرایه

امن ترین راه برای حلقه زدن روی یک آرایه، استفاده از حلقه for است:

var fruits, text, fLen, i;
fruits = [“Banana”“Orange”“Apple”“Mango”];
fLen = fruits.length;

text = “<ul>”;
for (i = ۰; i < fLen; i++) {
text += “<li>” + fruits[i] + “</li>”;
}
text += “</ul>”;

شما همچنین می توانید از تابع Array.forEach() استفاده کنید:

var fruits, text;
fruits = [“Banana”“Orange”“Apple”“Mango”];

text = “<ul>”;
fruits.forEach(myFunction);
text += “</ul>”;

function myFunction(value) {
text += “<li>” + value + “</li>”;
}

اضافه کردن عناصر به آرایه

ساده ترین راه برای اضافه کردن یک عنصر جدید به آرایه، استفاده از روش push() است:

var fruits = [“Banana”“Orange”“Apple”“Mango”];
fruits.push(“Lemon”);

عنصر جدید همچنین می تواند با استفاده از خصوصیت length به یک آرایه اضافه شود:

var fruits = [“Banana”“Orange”“Apple”“Mango”];
fruits[fruits.length] = “Lemon”;

هشدار!

اضافه کردن عناصر با ارقام ایندکس زیاد می تواند حفره undefined در آرایه ایجاد کند:

آرایه های انجمنی

بسیاری از زبان های برنامه نویسی آرایه با شاخص های نامگذاری شده را پشتیبانی می کنند.

آرایه ها با ایندکس های نامگذاری شده، آرایه های انجمنی (یا هش ها) نامیده می شوند.

جاوا اسکریپت از آرایه ها با شاخص های نامگذاری شده پشتیبانی نمی کند .

در جاوا اسکریپت، آرایه ها همیشه از شاخص های عددی استفاده می کنند .

هشدار!
اگر شما از شاخص های نامگذاری شده استفاده کنید، جاوا اسکریپت آرایه را به شیء استاندارد باز تعریف می کند.
پس از آن، برخی از متد ها و خواص آرایه نتایج نادرستی تولید خواهند کرد .

تفاوت بین آرایه ها و اشیاء

در جاوا اسکریپت، آرایه ها از شاخص های عددی استفاده می کنند.

در جاوا اسکریپت، اشیاء از شاخص های نامگذاری شده استفاده می کنند.

آرایه ها یک نوع خاص از اشیاء هستند که دارای شاخص های عددی می باشند.

چه زمانی از آرایه ها و چه زمانی از اشیا استفاده کنیم؟

  • جاوا اسکریپت از آرایه های انجمنی پشتیبانی نمی کند.
  • هنگامی که میخواهید نام عناصر رشته (متن) باشند، باید از اشیاء استفاده کنید.
  • هنگامی که میخواهید نام عناصر عددی باشند، باید از آرایه ها استفاده کنید.

اجتناب از new Array()

لازم نیست از سازنده ی آرایه ی جاوا اسکریپت new Array() استفاده کنید.

به جای آن از [ ] استفاده کنید.

این دو عبارت مختلف یک آرایه خالی جدید به نام points ایجاد می کنند:

var points = new Array();     // بد
var points = [];              // خوب

این دو عبارت مختلف، هر دو یک آرایه جدید شامل ۶ عدد ایجاد می کنند:

 

امیدواریم آموزش آرایه ها (Arrays) در جاوا اسکریپت نیز برای شما مفید واقع شده باشد .برای مطالعه پست‌های بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟