مقدمه

آرایه‌ (Array) یکی از پرکاربردترین ساختارهای داده در جاوااسکریپت و تمام زبان‌های برنامه‌نویسی مدرن است. با آرایه‌ها می‌توانید مجموعه‌ای از داده‌ها را با یک نام نگهداری و به هر خانه با یک شماره اندیس (Index) دسترسی پیدا کنید. در این درس، با مفهوم آرایه، نحوه ساخت و ویژگی‌های کلیدی آن آشنا می‌شویم.

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

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

تعریف آرایه با براکت []

متداول‌ترین و ساده‌ترین روش برای ساخت آرایه، استفاده از علامت براکت [] است. کافیست عناصر دلخواه را داخل براکت و با کاما از هم جدا کنید. آرایه‌ها می‌توانند هر نوع داده‌ای (عدد، رشته، شیء و حتی آرایه دیگر) را در خود نگه دارند.

این روش بسیار خوانا و سریع است و در پروژه‌های واقعی، بیشتر مواقع از همین روش استفاده می‌شود.

Copy Icon JAVASCRIPT
let numbers = [1, 2, 3, 4];
let colors = ["red", "green", "blue"];
let mixed = [1, "hello", true, {name: "Ali"}];
console.log(mixed[3].name); // "Ali"

در کد بالا آرایه‌ها با استفاده از براکت ساخته شده‌اند. توجه کنید که عناصر آرایه می‌توانند از هر نوع داده‌ای باشند، حتی آرایه یا شیء. برای دسترسی به هر عنصر، کافی است اندیس آن را در براکت بنویسید؛ مثلاً mixed[3].name مقدار "Ali" را برمی‌گرداند.

تعریف آرایه با سازنده Array

می‌توانید با استفاده از سازنده Array نیز آرایه بسازید، اما این روش اغلب فقط زمانی به‌کار می‌رود که بخواهید آرایه‌ای با طول مشخص اما خانه‌های خالی داشته باشید. این روش کمتر در کدهای معمولی دیده می‌شود.

Copy Icon JAVASCRIPT
let arr1 = new Array(5); // آرایه‌ای با ۵ خانه تهی
let arr2 = new Array("a", "b", "c");

ویژگی‌های آرایه

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

اندیس و ترتیب عناصر

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

برای دسترسی به هر عنصر کافی است نام آرایه و اندیس مورد نظر را در براکت بنویسید. همچنین آرایه‌ها طول متغیر دارند و می‌توانید هر زمان عناصر جدید اضافه یا حذف کنید.

Copy Icon JAVASCRIPT
console.log(colors[0]); // "red"
colors[2] = "blue-green";

پراپرتی length

آرایه‌ها یک پراپرتی length دارند که تعداد عناصر آرایه را نشان می‌دهد. این ویژگی بسیار کاربردی است و برای حلقه‌ها و پیمایش آرایه استفاده می‌شود.

اگر به اندیسی بزرگ‌تر از length-1 مقدار بدهید، طول آرایه به طور خودکار بزرگ‌تر می‌شود و خانه‌های خالی بین آن undefined خواهند بود. مثال زیر را ببینید.

Copy Icon JAVASCRIPT
let arr = [10, 20, 30];
console.log(arr.length); // 3
arr[5] = 50;
console.log(arr.length); // 6

تفاوت Array و Object

آرایه‌ها از نظر ساختاری نوعی شیء هستند (typeof آن‌ها object است)، اما برای نگهداری داده‌های مرتب و جدولی بهینه‌سازی شده‌اند. هرچند می‌توانید به آرایه پراپرتی جدید اضافه کنید، ولی توصیه می‌شود فقط برای داده‌های لیستی و پشت سر هم از آرایه استفاده شود.

اگر به آرایه پراپرتی جدید اضافه کنید، این پراپرتی‌ها در پیمایش معمول آرایه دیده نمی‌شوند و تاثیری بر ترتیب عناصر ندارند. برای داده‌های کلیدی و پراپرتی‌محور، از شیء (Object) استفاده کنید.

Copy Icon JAVASCRIPT
let arr = [1, 2];
arr.foo = "bar";
console.log(arr.foo); // "bar"
console.log(arr[1]); // 2

پیمایش آرایه‌ها

دیدیم که برای دسترسی به هر عنصر آرایه، می‌توانید از اندیس‌ها استفاده کنید. اما در پروژه‌های واقعی، معمولاً نیاز دارید تا همه عناصر آرایه را پیمایش کنید. در این بخش، چند روش متداول برای پیمایش آرایه‌ها را بررسی می‌کنیم.

حلقه for کلاسیک

متداول‌ترین روش برای پیمایش آرایه، استفاده از حلقه for کلاسیک است. این روش انعطاف‌پذیری بالایی دارد و کنترل کاملی روی اندیس‌ها به شما می‌دهد.

Copy Icon JAVASCRIPT
for (let i = 0; i < numbers.length; i++) {
  console.log(numbers[i]);
}

حلقه for...of

با استفاده از حلقه for...of (از ES6 به بعد)، می‌توانید هر عنصر آرایه را به راحتی پیمایش کنید. این روش ساده‌تر و خواناتر است، مخصوصاً زمانی که فقط به مقدار عناصر نیاز دارید و کاری به اندیس عناصر نداریم.

Copy Icon JAVASCRIPT
for (let color of colors) {
  console.log(color);
}

آرایه‌ها ساختار پایه‌ای برای نگهداری لیست داده‌ها در جاوااسکریپت هستند. یادگیری نحوه ساخت، ویژگی‌ها و تفاوت آرایه با شیء، به شما کمک می‌کند برنامه‌هایی قدرتمندتر و حرفه‌ای‌تر بنویسید. در درس بعد، با متدهای آرایه‌ها و ابزارهای حرفه‌ای برای مدیریت داده‌های لیستی آشنا خواهید شد.