جاوااسکریپتمقدماتی۵ دقیقه مطالعهECMAScript 2023+

آرایه‌ها

نگهداری مجموعه‌ای از مقادیر در یک متغیر با آرایه؛ دسترسی با اندیس، متدهای push و pop، پیمایش با for...of و تبدیل با map.

آنچه در این درس می‌آموزید

  • آرایه بسازید و با اندیس به عناصر آن دسترسی داشته باشید
  • عناصر را با push و pop اضافه و حذف کنید
  • آرایه را با for...of پیمایش و با map تبدیل کنید
نویسنده: تیم داکنامه · بازبینی: ۲۰۲۶-۱۰-۳۰
فهرست مطالب

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

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

colors.js
const colors = ["Red", "Green", "Blue"];

console.log(colors.length);
console.log(colors[0]);
console.log(colors[2]);
خروجی کد

3 Red Blue

عناصر با ویرگول داخل براکت نوشته می‌شوند و ترتیبشان مهم است. دو نکتهٔ کلیدی:

  1. اندیس از صفر شروع می‌شود. colors[0] عنصر نخست است و colors[2] عنصر سوم؛ این نکته پرتکرارترین منبع خطای تازه‌کارهاست.
  2. length تعداد عناصر را می‌دهد. آخرین عنصر همیشه colors[colors.length - 1] است.

اگر به جایگاهی برسید که وجود ندارد — مثل colors[10] در این آرایه — جاوااسکریپت خطا نمی‌دهد و مقدار undefined برمی‌گرداند.

افزودن و حذف با push و pop

آرایه‌ها ابزارهای آماده‌ای برای تغییر دارند. دو متد پایه:

todo.js
const tasks = ["Shopping", "Study"];

tasks.push("Exercise");
console.log(tasks.length);

tasks.pop();
console.log(tasks);
خروجی کد

3 [ 'Shopping', 'Study' ]

  • push به انتهای آرایه عنصر می‌افزاید؛ حالا سه کار داریم.
  • pop آخرین عنصر را حذف می‌کند و خودِ آن عنصر را برمی‌گرداند؛ فهرست به حالت اول بازگشت.

سایر متدهای پرکاربرد: shift عنصر اول را حذف می‌کند، unshift به ابتدا اضافه می‌کند و includes می‌گوید عنصری در آرایه هست یا نه.

پیمایش با for...of

برای گذر از روی همهٔ عناصر، حلقهٔ for...of مستقیم‌ترین راه است؛ لازم نیست با اندیس و length درگیر شوید:

sum-array.js
const scores = [12, 17, 9, 15];

let sum = 0;
for (const s of scores) {
  sum += s;
}

console.log(sum);
خروجی کد

53

در هر دورِ حلقه، مقدار بعدی آرایه در s قرار می‌گیرد: اول ۱۲، بعد ۱۷ و همین‌طور تا آخر. ترکیب حلقه‌ها با آرایه‌ها یکی از پرسازده‌ترین الگوهای برنامه‌نویسی است.

تبدیل آرایه با map

نمونهٔ دیگری از «تابع به‌عنوان مقدار» که در درس توابع دیدیم اینجاست: متد map روی هر عنصر تابعی را اجرا می‌کند و آرایه‌ای تازه از نتایج می‌سازد؛ آرایهٔ اصلی دست‌نخورده می‌ماند.

double.js
const numbers = [1, 2, 3, 4];
const doubled = numbers.map((n) => n * 2);

console.log(doubled);
خروجی کد

[ 2, 4, 6, 8 ]

تابع پیکانی (n) => n * 2 برای هر عنصر صدا زده شد: ۱ شد ۲، ۲ شد ۴ و به همین ترتیب. map فقط یکی از متدهای خانوادهٔ پیمایش است؛ filter عناصری را که تابع برایشان true برمی‌گرداند نگه می‌دارد و find اولین عنصر برابر شرط را می‌دهد.

تمرین‌ها

تمرین

تمرین ۱ — بزرگ‌ترین عدد

آرایهٔ [8, 3, 15, 6] را در متغیری بگذارید و با یک حلقهٔ for...of بزرگ‌ترین عدد آن را پیدا و چاپ کنید. پیشنهاد: بزرگ‌ترین عدد را تا این لحظه در متغیری نگه دارید و با تک‌تک عناصر مقایسه کنید.

js
// Write your code here
نمایش راه‌حل
js
const numbers = [8, 3, 15, 6];
let max = numbers[0];
for (const n of numbers) {
  if (n > max) {
    max = n;
  }
}
console.log(max);
خروجی کد

15

::: :::

خلاصه

  • آرایه چند مقدار مرتب را زیر یک نام نگه می‌دارد و length اندازهٔ آن را می‌دهد.
  • اندیس‌ها از صفر شروع می‌شوند؛ دسترسی به جایگاه ناموجود undefined می‌دهد، نه خطا.
  • push و pop از انتهای آرایه اضافه و حذف می‌کنند و با const هم مجازند.
  • حلقهٔ for...of از روی عناصر می‌گذرد بدون آنکه با اندیس درگیر شوید.
  • map با اجرای یک تابع روی تک‌تک عناصر، آرایه‌ای تازه می‌سازد.

داده‌های همگن را آرایه نگه می‌دارد؛ اما موجودیت‌های چندبخشی مثل «یک کاربر» چه؟ در درس بعدی با اشیاء، داده‌های ساخت‌دار را مدل می‌کنیم.

منابع و ارجاع‌ها

درس‌های مرتبط