در JavaScript، «آرایه» ساختاری شبیه فهرست است که طول ثابتی ندارد و میتواند هر نوعی از مقدارهای اولیه یا شیءها، حتی انواع مخلوط، را در خود نگه دارد.
برای ساختن آرایه، عنصرها را بین کروشههای [] قرار دهید.
برای خواندن از آرایه، اندیس را بعد از شناسه داخل کروشههای [] بگذارید.
اندیسهای آرایه از صفر شروع میشوند.
برای مثال:
const numbers = [1, 'two', 3, 'four'];
numbers[2];
// => 3
برای به دست آوردن تعداد عنصرهای موجود در یک آرایه، از ویژگی length استفاده کنید:
const numbers = [1, 'two', 3, 'four'];
numbers.length;
// => 4
برای تغییر یک عنصر در آرایه، در آن اندیس مقداری را نسبت میدهید:
const numbers = [1, 'two', 3, 'four'];
numbers[0] = 'one';
numbers;
// => ['one', 'two', 3, 'four']
برخی از متدها که روی هر شیء Array در دسترساند، میتوانند برای افزودن به آرایه یا حذف از آن به کار روند. در ادامه چند مورد را میبینید که هنگام کار روی این تمرین باید در نظر بگیرید:
میتوان یک value را با استفاده از .push(value) به انتهای آرایه افزود.
این متد طول جدید آرایه را برمیگرداند.
const numbers = [1, 'two', 3, 'four'];
numbers.push(5); // => 5
numbers;
// => [1, 'two', 3, 'four', 5]
میتوان آخرین value را با استفاده از .pop() از آرایه حذف کرد.
این متد مقدار حذفشده را برمیگرداند.
با این تغییر، طول آرایه کاهش مییابد.
const numbers = [1, 'two', 3, 'four'];
numbers.pop(); // => four
numbers;
// => [1, 'two', 3]
میتوان اولین value را با استفاده از .shift() از آرایه حذف کرد.
این متد مقدار حذفشده را برمیگرداند.
با این تغییر، طول آرایه کاهش مییابد.
const numbers = [1, 'two', 3, 'four'];
numbers.shift(); // => 1
numbers;
// => ['two', 3, 'four']
میتوان یک value را با استفاده از .unshift(value) به ابتدای آرایه افزود.
این متد طول جدید آرایه را برمیگرداند.
const numbers = [1, 'two', 3, 'four'];
numbers.unshift('one'); // => 5
numbers;
// => ['one', 1, 'two', 3, 'four']
میتوان یک value را در index مشخصی با استفاده از .splice(index, 1) از آرایه حذف کرد.
این متد عنصر یا عنصرهای حذفشده را برمیگرداند.
const numbers = [1, 'two', 3, 'four'];
numbers.splice(2, 1, 'one'); // => [3]
numbers;
// => [1, 'two', 'one', 'four']
این متدها قدرتمندتر از آناند که توضیح داده شد:
push و هم unshift به شما اجازه میدهند با افزودن آرگومانهای بیشتر، چند مقدار را یکجا push یا unshift کنید.
برای کامل کردن این تمرین این کار لازم نیست.deleteCount، چند مقدار را اضافه کند.
از این کار میتوان برای جایگزین کردن مقدارها یا درج مقدارها در میانهی آرایه استفاده کرد (مثلاً با حذف ۰ عنصر).
برای کامل کردن این تمرین این کار لازم نیست.الیس بهعنوان یک جادوگر تازهکار باید چند مبنای اولیه را تمرین کند. او یک دسته کارت دارد که میخواهد با آنها کار کند.
برای اینکه کارها کمی راحتتر شود، او فقط از کارتهای ۱ تا ۱۰ استفاده میکند، بنابراین دستهی کارتهایش را میتوان با یک آرایه از اعداد نمایش داد. موقعیت یک کارت مشخص با اندیس آن در آرایه متناظر است. یعنی موقعیت ۰ به کارت اول اشاره دارد، موقعیت ۱ به کارت دوم و به همین ترتیب.
همهی توابع بهجز دو تابع باید آرایهی کارتها را بهروزرسانی کنند و سپس آرایهی تغییریافته را برگردانند. این روشی رایج برای کار کردن است که به الگوی Builder معروف است و به شما امکان میدهد توابع را بهخوبی بهصورت زنجیرهای به هم وصل کنید.
دو استثنا عبارتند از getItem که باید کارت موجود در موقعیت دادهشده را برگرداند و checkSizeOfStack که اگر اندازهی دادهشده مطابقت داشته باشد باید true را برگرداند.
برای برداشتن یک کارت، کارت موجود در اندیس position را از دستهی دادهشده برگردانید.
const position = 2;
getItem([1, 2, 4, 1], position);
// => 4
کمی تردستی کنید و کارت موجود در اندیس position را با کارت جایگزین دادهشده عوض کنید.
دستهی تنظیمشده را برگردانید.
const position = 2;
const replacementCard = 6;
setItem([1, 2, 4, 1], position, replacementCard);
// => [1, 2, 6, 1]
با درج یک کارت جدید در بالای دسته، کاری کنید که یک کارت ظاهر شود. دستهی تنظیمشده را برگردانید.
const newCard = 8;
insertItemAtTop([5, 9, 7, 1], newCard);
// => [5, 9, 7, 1, 8]
با حذف کارت موجود در position دادهشده از دسته، کاری کنید که یک کارت ناپدید شود.
دستهی تنظیمشده را برگردانید.
const position = 2;
removeItem([3, 2, 6, 4, 8], position);
// => [3, 2, 4, 8]
با حذف کارت بالای دسته، کاری کنید که یک کارت ناپدید شود. دستهی تنظیمشده را برگردانید.
removeItemFromTop([3, 2, 6, 4, 8]);
// => [3, 2, 6, 4]
با درج یک کارت جدید در پایین دسته، کاری کنید که یک کارت ظاهر شود. دستهی تنظیمشده را برگردانید.
const newCard = 8;
insertItemAtBottom([5, 9, 7, 1], newCard);
// => [8, 5, 9, 7, 1]
با حذف کارت پایین دسته، کاری کنید که یک کارت ناپدید شود. دستهی تنظیمشده را برگردانید.
removeItemAtBottom([8, 5, 9, 7, 1]);
// => [5, 9, 7, 1]
بررسی کنید که اندازهی دسته با stackSize برابر است یا نه.
const stackSize = 4;
checkSizeOfStack([3, 2, 6, 4, 8], stackSize);
// => false
در Exercism ثبتنام کنید تا JavaScript را همراه با 37 مفهوم159 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.