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

آرایه (Array) ساختمان داده ای است که از خانه های پشت سرهم و معمولا هم نوع تشکیل شده و می تواند دارای چندین بُعد (dimension) باشد.

آرایه (Array) ساختمان داده ای است که از خانه های پشت سرهم و معمولا هم نوع تشکیل شده و می تواند دارای چندین بُعد (dimension) باشد. به صورت ساده می توان گفت به جای اینکه بیاییم در برنامه های خود متغیرهایی با نام های مختلف در نظر بگیریم می توانیم از آرایه (Array) استفاده کنیم. آرایه ها براساس Index یا اندیس کار می کنند، یعنی اگر بخواهیم به آنها مقدار دهیم باید با اندیس آنها کار کنیم. کوچکترین اندیس همیشه اولین خانه آرایه و بیشترین اندیس همیشه آخرین آدرس آرایه خواهد بود. بنابراین ما از آرایه های جاوا اسکریپت به منظور ذخیره سازی چندین مقدار در یک متغیر استفاده می کنیم.

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

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

;["var cars = ["Saab", "Volvo", "BMW

 آرایه (Array)

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

اگر شما یک لیست از آیتم ها داشته باشید، به عنوان مثال لیستی از اسامی ماشین ها، ذخیره سازی ماشین ها در متغیرهای تکی و جداگانه به  شکل زیر خواهد بود:

آموزش آرایه ها در JavaScript

ساخت آرایه

برای ایجاد یک آرایه جاوا اسکریپت می توانید از قاعده نوشتاری زیر استفاده کنید: در این تعریف array_name نام آرایه می باشد.

;var array_name = [item1item2, ...]    

مثال زیر نحوه تعریف یک آرایه با نام cars را نشان می دهد که برای ذخیره سازی لیستی از اسامی ماشین ها استفاده می شود:

;var cars = ["Saab", "Volvo", "BMW"]

در تعریف آرایه فضاهای خالی و شکستگی های خطوط مهم نیستند. یک اعلان آرایه می تواند چندین خط را در بر بگیرد.

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

استفاده از کلید واژه new در جاوا اسکریپت

شما همچنین می توانید یک آرایه را به شکل زیر با استفاده از کلمه کلیدی new بسازید و مقادیری را به آن انتساب دهید.

;var cars = new Array("Saab", "Volvo", "BMW")

شما می توانید از هر دو روش تعریف آرایه استفاده نمایید زیرا هر دو یک کارایی را دارند.

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

برای دسترسی به عناصر آرایه شما می توانید از یک اندیس (index) که شماره خانه ای از آرایه است استفاده کنید و به عنصر مورد نظر دسترسی داشته باشید.

این دستور به مقدار اولین عنصر در آرایه cars دسترسی پیدا می کند. دقت کنید که مقدار اندیس در آرایه ها از صفر شروع می شود و مقدار [0] اشاره به اولین عنصر آرایه دارد.

;var name = cars[0]

در مثال زیر با استفاده از cars[0] به مقدار Saab که اولین عنصر آرایه است دسترسی پیدا می کنیم.

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

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

بعد از تعریف آرایه شما همانطور که با متغیرها کار می کنید می توانید با آرایه کار کنید و به عناصر آرایه دسترسی داشته باشید. این دستور مقدار اولین عنصر در آرایه cars را تغییر می دهد:

;cars[0] = "Opel"

آموزش آرایه ها

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

در زبان جاوا اسکریپت، با استفاده از نام آرایه می توان به همه عناصر آرایه دسترسی پیدا کرد:

آموزش آرایه ها در JavaScript

آرایه ها Object هستند

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

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

;var person = ["John", "Doe", 46]

در زبان جاوا اسکریپت اشیا از اسامی برای دسترسی به اعضایشان استفاده می کنند. در مثال زیرعبارت person.firstName مقدار John را بر می گرداند.

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

عناصر یک آرایه می توانند Object باشند

متغیرهای جاوا اسکریپت می توانند اشیا محسوب شوند. از طرفی آرایه ها یک نوع خاصی از اشیا می باشند. به همین دلیل عناصر یک آرایه می توانند object باشند. می توانید در یک آرایه توابع را داشته باشید یا اصلا می توانید خود آرایه ها را در یک آرایه داشته باشید. مثال زیر نحوه انجام این کار را نشان می دهد.

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

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

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

آموزش Arrays

متد های آرایه ها را در بخش بعدی طی یک مقاله کامل مطرح کرده ایم.

مشخصه طول

با استفاده از مشخصه length ما می توانیم طول یک آرایه ( تعداد عنصرهای آرایه ) در جاوا اسکریپت را به دست آوریم.

آموزش Arrays

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

آموزش آرایه ها در JavaScript

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

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

پیمایش عنصر های آرایه

بهترین راه برای پیمایش عنصر های یک آرایه، استفاده از یک حلقه ی for می باشد. مثال زیر نحوه انجام این کار را نشان می دهد:

آموزش آرایه ها در JavaScript

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

آموزش  JavaScript

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

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

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

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

آموزش آرایه ها در JavaScript

هشدار!!

اضافه کردن عنصر های جدید با ایندکس هایی با اعداد بالا می تواند باعث ایجاد خانه های خالی زیادی در یک آرایه شود و فضای بیشتری از Ram را درگیر کنید.

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

آرایه های شرکت پذیر

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

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

هشدار!!

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

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

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

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

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

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

 از به کار بردن ()new Array اجتناب کنید

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

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

این دو دستور متفاوت هر دو یک آرایه ی خالی می سازند:

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

 در مثال زیر هر دو تعریف، یک آرایه ی خالی که شمل 6 عدد می باشد را می سازند:

آموزش آرایه ها در JavaScript

کلید واژه ی new فقط کد را پیچیده تر می کند. همچنین می تواند باعث یکسری پاسخ های غیرقابل انتظار شود:

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

اگر یکی از عنصر ها را حذف کنیم چه اتفاقی رخ می دهد؟

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

همانطور که در مثال بالا می بینید، دستور بالا باعث ایجاد یک آرایه به طول 40 شده که تمامی خانه های آن مقدار undefined دارند.

چگونه یک آرایه را تشخیص دهیم

یک سوال خیلی متعارف این است که: چگونه بفهمیم که یک متغیر آرایه می باشد؟ مشکل اینجاست که عملگر typeof در جاوا اسکریپت نوع آرایه را object بر می گرداند:

آموزش آرایه ها در JavaScript

عملگر typeof نوع یک آرایه را Object بر می گرداند زیرا آرایه جاوا اسکریپت یک شی محسوب می شود.

راه حل اول: برای حل کردن این مشکل ECMAScript 5 یک متد جدید به نام ()Array.isArray تعریف کرده است:

Array.isArray(fruits);   // returns true

اما مشکل این راه حل این است که ECMAScript 5 در مرورگر های قدیمی پشتیبانی نمی شود.

راه حل دوم: برای حل این مشکل شما می توانید تابع ()isArray شخصی خودتان را بسازید.  کد زیر نحوه نوشتن این تابع را نشان دهد:

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

تابع بالا همیشه در صورتی که ورودی یک آرایه باشد، کلمه true را، برمی گرداند.

آموزش جاوا اسکریپت آموزش آرایه ها در جاوا اسکریپت آموزش JavaScript آموزش Array متد ها و مشخصه های یک آرایه