У 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 дають змогу додати чи вставити кілька значень одразу, додавши більше аргументів.
Для виконання цієї вправи це не потрібно.deleteCount.
Це можна використати, щоб замінити значення або вставити значення в середину масиву (наприклад, видаливши 0 елементів).
Для виконання цієї вправи це не потрібно.Як майбутня чарівниця, Еліз має відпрацювати деякі основи. У неї є стос карток, з яким вона хоче працювати.
Щоб трохи спростити собі життя, вона використовує лише картки від 1 до 10, тож її стос карток можна подати як масив чисел. Позиція певної картки відповідає індексу в масиві. Це означає, що позиція 0 вказує на першу картку, позиція 1 - на другу, і так далі.
Усі функції, крім двох, повинні оновлювати масив карток, а потім повертати змінений масив. Це поширений підхід, відомий як патерн 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 вправ та справжнє наставництво від людей, і все це безкоштовно.