فراخوانی اعضای یک آرایه در جاوا اسکریپت

فراخوانی اعضای یک آرایه در جاوا اسکریپت


در اغلب اوقات، هدف از ایجاد یک آرایه آن است که در آینده به زیرمجموعه های آن دسترسی داشته باشیم و آن ها را اصطلاحاً Call یا «فراخوانی» کنیم. فراخوانی اعضای یک آرایه، دقیقاً همانند نحوه ی مقدار دهی اعضای آن است؛ یعنی بدین شکل که نام آرایه ی اصلی را می نویسیم و سپس به کمک براکت ها و شماره ی ایندکس عضوی که در نظر داریم، آن را فراخوانی می کنیم. مثلاً برای آن که به سومین عضو آرایه ای به اسم “myArray” دسترسی پیدا کنیم، می بایست نام آن را نوشته، سپس در داخل براکت های جلوی آن، شماره ی ایندکس 2 را وارد کنیم (چرا که با شروع شدن شمارش ایندکس ها از 0، عضو سوم برابر عدد 2 خواهد بود):

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

در اینجا، جفت براکت های اول، نشان دهنده ی بُعد اول آرایه هستند که شامل Seasons، Colors و Weather می شوند. جفت براکت های دوم که بُعد دوم آرایه را تشکیل می دهند، یک لایه پایین تر را هدف قرار می دهند که شامل تمامی زیر مجموعه های لایه های بالاتر می شوند. مثلاً Summer، Green و Rainy بخشی از زیرمجموعه های لایه ی بالاتر هستند.

بدین ترتیب، تکه کد بالا به جاوا اسکریپت دستور می دهد که از میان آرایه های درونی، آرایه ی Colors را انتخاب کند (براکت های اول: [1]) و سپس به سراغ زیر مجموعه ی Red از آن آرایه برود (براکت های دوم: [3]). اکنون برای آن که با کاربرد آرایه ها کمی بیشتر آشنا شویم، بیایید یک آرایه ی جدید با مقادیر یا اعضای عددی ایجاد کنیم:

از آنجایی که این آرایه تنها یک بُعد دارد، برای فراخوانی اعضای آن نیز تنها از یک جفت براکت استفاده می کنیم. در این آرایه، چهار عضو مختلف وجود دارند که بدین ترتیب، اولین عضو شماره ی ایندکس 0، و آخرین عضو شماره ی ایندکس 3 را در اختیار خواهند داشت (شماره ایندکس اعضا به صورت پیش فرض یک شماره از شمارش اعداد طبیعی کمتر است مگر آن که خودمان دستور دهیم که شمارش از عدد 1 آغاز شود.) حال می توانیم با کدهای زیر، اعضای آرایه ی myNumbers را فراخوانی کنیم:

اما اگر در داخل براکت ها، از شماره ایندکسی استفاده کنیم که در محدوده ی آرایه وجود ندارد، چه اتفاقی خواهد افتاد؟ مثلاً با اینکه این آرایه 4 عضو بیشتر ندارد، شماره ی ایندکس 6 را از او بخواهیم:

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

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

در اینجا باید دقت کنیم که در داخل براکت ها، خودِ مقدار مد نظر را ننویسیم (مثلاً [myNumbers[44 کاملا غلط است بلکه در عوض باید فقط شماره ی ایندکس مثلا [myNumbers[1 را بنویسیم.) تکه کد بالا، عملیات ریاضی 99+77+44+22 را انجام داده و نتیجه ی آن را در متغیر totalSum ذخیره می کند. اکنون برای مشاهده ی نتیجه ی کار خود، کافی است از totalSum بخواهیم که مقدار خود را برای ما آشکار کند:

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

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

دیدگاهتان را بنویسید

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