نحوه ی ساخت آرایه های چند بُعدی در زبان جاوا اسکریپت

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
نه تنها می توان یک آرایه را به عنوان یک اِلِمنت در داخل آرایه ای دیگر ذخیره کرد، بلکه می توان چند آرایه را در کنار همدیگر نیز ایجاد کرد. به این آرایه ی جدید که چندین آرایه را به صورت همزمان در کنار هم دارد، Multidimensional Array یا «آرایه ی چند بُعدی» می گویند. برای ایجاد این نوع از آرایه ها، فقط کافی است تا به ازای هر بُعد یا آرایه ی جدیدی که اضافه می کنیم، یک براکت جدید نیز بگذاریم. به بیانی دیگر:

var listOfLists [0][0];
شاید در ابتدای راه، تصور کردن آرایه های چند بُعدی کمی دشوار باشد اما بهتر است این گونه به آرایه های چند بُعدی نگاه کنید. بیایید فرض کنیم که هر بُعد از این آرایه، یک لیست جداگانه برای خودش است و این لیست ها، همگی در زیر پرچم یک آرایه ی بزرگتر که شامل همه ی آن ها می شود، قرار دارند. برای مثال، لیست های زیر را در نظر بگیریم:

1. فصل ها:
1.1. بهار
1.2. تابستان
1.3. پاییز
1.4. زمستان
2. رنگ ها:
2.1. آبی
2.2. سبز
2.3. قرمز
3. وضعیت هوا:
3.1. آفتابی
3.2. ابری
3.3. بارانی

فرض کنیم که این سه لیست را در یک مجموعه به نام ourWorld یا «دنیای ما» قرار داده ایم. زمانی که بخواهیم یک آرایه ی چند بُعدی ایجاد کنیم، این آرایه دقیقاً همانند مجموعه ی «دنیای ما» خواهد بود که شامل چند لیست در داخل خود نیز هست. با آن که هر کدام از لیست های فصل ها، رنگ ها و وضعیت هوا خودشان یک آرایه ی جداگانه هستند و چند زیرمجموعه دارند، اما آرایه ی بزرگتر که این آرایه های کوچک تر را در داخل خود جای می دهد، یک آرایه ی چند بُعدی یا Multidimensional Array نامیده می شود. حالا بیایید این آرایه ی چند بُعدی را ایجاد کنیم. تکه کد زیر، این آرایه را ایجاد می کند:

var ourWorld = [[], [], []];
ourWorld[0][0] = "Seasons";
ourWorld[0][1] = "Spring";
ourWorld[0][2] = "Summer";
ourWorld[0][3] = "Fall";
ourWorld[0][4] = "Winter";
ourWorld[1][0] = "Colors";
ourWorld[1][1] = "Blue";
ourWorld[1][2] = "Green";
ourWorld[1][3] = "Red";
ourWorld[2][0] = "Weather";
ourWorld[2][1] = "Sunny";
ourWorld[2][2] = "Cloudy";
ourWorld[2][3] = "Rainy";
در اولین خط از این کد، به جای آن که مانند آرایه های یک بُعدی، از یک جفت براکت خالی استفاده کنیم، سه جفت براکت خالی را در داخل براکت اصلی قرار داده ایم. بدین ترتیب، یک آرایه ی چند بعدی (براکت های بیرونی) خواهیم داشت که سه آرایه ی دیگر (براکت های درونی) را در بر می گیرد. به بیانی ساده تر، هر کدام از جفت براکت های خالی، نشانگر یک آرایه ی درونی هستند که در آینده مقدار دهی خواهند شد.

اکنون که آرایه ی چند بُعدی خود (در این مثال، 2 بُعدی) را ایجاد کرده ایم، شروع به مقدار دهی می کنیم. اما پیش از مقدار دهی، بیایید ساختار این آرایه ی Multidimensional را بررسی کنیم. شماره ی زیر مجموعه های این آرایه، مثل تمامی آرایه های دیگر، از ایندکس 0 شروع می شود، به همین خاطر، اولین آرایه ی درونی (لیست فصل ها) در شماره ی ایندکس 0 یا همان خانه ی اول قرار می گیرد:

ourWorld[0][0] = "Seasons";
این خانه که در بُعد یا لایه ی اول قرار گرفته، یک سرگروه برای مقادیر بهار، تابستان، پاییز و زمستان محسوب می شود، پس اگر بخواهیم زیرمجموعه های فصل ها را نیز وارد کنیم، می بایست یک لایه پایین تر رفته و بُعد جدیدی ایجاد کنیم. بدین ترتیب:

ourWorld[0][1] = "Spring";
ourWorld[0][2] = "Summer";
ourWorld[0][3] = "Fall";
ourWorld[0][4] = "Winter";
در این قسمت، به جای آن که ایندکس عددی براکت اول (از سمت چپ) را زیاد کنیم، ایندکس براکت دوم را به ترتیب اضافه می کنیم تا در حقیقت به لایه ی دوم و «زیر مجموعه های لایه ی بالاتر» دسترسی پیدا کنیم. همین روال تا پایان کد ادامه پیدا کرده و سرگروه ها به همراه زیر مجموعه هایشان، به ترتیب ایندکس، تعریف شده اند.

نکته
پس از آن که آرایه ی درونی Seasons یا «فصل ها» را ایجاد کردیم، باید به سراغ آرایه ی درونی بعدی یعنی Colors یا «رنگ ها» برویم. برای این کار، ایندکس براکت های اولی (از سمت چپ) یک واحد افزایش پیدا می کند. این کار، ما را به ابتدای آرایه ی جدید می برد، پس شماره ی ایندکس زیرمجموعه ها (براکت های دوم) نیز می بایست از اول (یا همان صفر) شروع شود.
حال اگر بخواهیم یکی از آرایه های درونی را به همراه تمام زیر مجموعه هایش صدا بزنیم، می بایست تنها شماره ی ایندکس سرگروه یا همان لایه ی اول را فراخوانی کنیم:

console.log(ourWorld[0]); //returns ["Seasons", "Spring", "Summer", "Fall", "Winter"]
همان طور که مشاهده می کنید، آرایه ی Seasons و اعضایش در داخل آرایه اصلی یعنی ourWorld ذخیره شده اند و با فراخوانی ایندکس آرایه ی درونی، زیر مجموعه های آن نیز نمایش داده می شوند. بدین ترتیب، اکنون آرایه ی چند بُعدی ourWorld شامل سه آرایه ی درونی به نام های Seasons، Colors و Weather است که هر کدامشان، دارای زیر مجموعه های مخصوص به خود هستند.

نکته
با آن که این روش می تواند برای طراحی آرایه های چند بُعدی کوچک، تا حدودی مناسب باشد، اما استفاده از آن به هیچ عنوان توصیه نمی شود. در زبان جاوا اسکریپت، آرایه های چند بُعدی را می بایست با استفاده از آبجکت ها ایجاد کرد که علاوه بر پشتیبانی از تعداد آرایه های بیشتر، قابلیت های بسیار گسترده تری نیز دارند. با این حال، این مثال صرفاً برای آن که با مفهوم آرایه های تو در تو بیشتر آشنا شویم، آورده شد. در بخش آبجکت ها، آرایه های Multidimensional به طور کامل شرح داده خواهند شد.
 

برخی موضوعات مشابه

بالا