دستورات زیر آرایههایی کاملاً همارز و یکسان ایجاد میکنند:
const arr1 = new Array(element0, element1, /* …, */ elementN);
const arr2 = Array(element0, element1, /* …, */ elementN);
const arr3 = [element0, element1, /* …, */ elementN];
در این ساختارها، element0, element1, …, elementN لیستی از مقادیر برای عناصر آرایه هستند. وقتی این مقادیر مشخص میشوند، آرایه با همین عناصر مقداردهی اولیه میشود و ویژگی length آرایه نیز برابر با تعداد این آرگومانها تنظیم میگردد.
به نحوهی نگارش کروشهای [ ]، «مقدار ثابت آرایه» (Array literal) یا «مقداردهی اولیهی آرایه» (Array initializer) گفته میشود. این روش کوتاهتر از روشهای دیگر ساخت آرایه است و به همین دلیل عموماً بیشتر مورد توجه و ترجیح قرار میگیرد.
برای ساخت آرایهای که طول آن صفر نباشد اما هیچ آیتمی هم درونش قرار نداشته باشد، میتوانید از یکی از روشهای زیر استفاده کنید:
// این روش...
const arr1 = new Array(arrayLength);
// ...نتیجهای کاملاً یکسان با این روش دارد
const arr2 = Array(arrayLength);
// این روش هم دقیقاً همان نتیجه را دارد
const arr3 = [];
arr3.length = arrayLength;
نکتهی مهم: در کد بالا، مقدار
arrayLengthحتماً باید یک عدد (Number) باشد، در غیر این صورت آرایهای با یک تکعنصر (که همان مقدار پاس داده شده است) ساخته میشود. با اجرای این کد، صدا زدنarr.lengthمقدارarrayLengthرا برمیگرداند، اما آرایه در واقع شامل هیچ عنصری نیست؛ به طوری که یک حلقهfor...inهیچ ویژگی یا پسوندی را روی این آرایه پیدا نخواهد کرد.
علاوه بر تعریف آرایه در یک متغیر جدید (همانطور که در بالا دیدیم)، آرایهها را میتوان به عنوان یک ویژگی (Property) به یک شیء جدید یا موجود نیز اختصاص داد:
const obj = {};
// ...
obj.prop = [element0, element1, /* …, */ elementN];
// یا به این صورت:
const obj = { prop: [element0, element1, /* …, */ elementN] };
اگر میخواهید آرایهای را تنها با یک عنصر مقداردهی اولیه کنید و آن عنصر از قضا یک عدد (Number) است، حتماً باید از ساختار کروشه [ ] استفاده کنید. زمانی که یک تکمقدار عددی به سازنده یا تابع ()Array پاس داده میشود، این عدد به عنوان طول آرایه (arrayLength) تفسیر میشود، نه به عنوان یک تکعنصر.
کد زیر آرایهای با تنها یک عنصر (عدد ۴۲) میسازد:
const arr = [42];
اما کد زیر آرایهای بدون هیچ عنصر میسازد، در حالی که ویژگی arr.length آن روی عدد ۴۲ تنظیم شده است:
const arr = Array(42);
// این دستور دقیقاً معادل است با:
const arr = [];
arr.length = 42;
همچنین اگر عدد پاس داده شده به (Array(N یک عدد غیرصحیح (اعشاری) باشد، خطای RangeError: Invalid array length رخ خواهد داد:
const arr = Array(9.3); // RangeError: Invalid array length
اگر کد شما نیاز دارد تا آرایههایی با یک تکعنصر از هر نوع دادهی دلخواهی ایجاد کند، امنتر است که از مقادیر ثابت آرایه (کروشه) استفاده کنید. روش جایگزین دیگر این است که ابتدا یک آرایه خالی بسازید و سپس آن تکعنصر را به آن اضافه کنید.
علاوه بر این، میتوانید از متد استاتیک Array.of نیز برای ساخت آرایههایی با یک تکعنصر استفاده کنید:
const arr = Array.of(9.3); // آرایه شامل تنها یک عنصر با مقدار 9.3 خواهد بود
از آنجا که عناصر آرایه به نوعی ویژگیهای آن نیز محسوب میشوند، شما میتوانید با استفاده از دسترسیدهندههای ویژگی (Property accessors) به آنها دسترسی داشته باشید. فرض کنید آرایهی زیر را تعریف کردهاید:
const myArray = ["Wind", "Rain", "Fire"];
شما میتوانید با عبارت myArray[0] به عنصر اول آرایه، با عبارت myArray[1] به عنصر دوم آرایه و به همین ترتیب به بقیه عناصر ارجاع دهید. ایندکس عناصر آرایه همیشه از صفر شروع میشود.
نکته: شما میتوانید از دسترسیدهندههای ویژگی برای دسترسی به سایر ویژگیهای آرایه نیز استفاده کنید (دقیقاً همانطور که با یک شیء معمولی رفتار میکنید):
const arr = ["one", "two", "three"];
arr[2]; // خروجی: three
arr["length"]; // خروجی: 3
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://developer.mozilla.org/en-US/docs/Web/JavaScript