текст перекладу
Масиви — це важлива структура даних, з якою стикається кожен розробник. Якщо ви ще не знайомі з масивами, приділіть трохи часу їх вивченню, перед тим як переходити до цієї статті. Повірте, це фундаментальна концепція.
Що таке масиви?
По суті, масиви — це неперервне виділення пам'яті, до якого можна звертатися по черзі, за допомогою циклу або без нього. Розробники, знайомі з C++, можуть згадати, що ціле число (int
) займає 4 байти пам'яті. Наприклад, якщо масив починається з адреси пам'яті 1000
, його наступні елементи будуть розташовані через кожні 4 байти (наприклад, 1000
, 1004
, 1008
і т. д.).
В JavaScript масиви трохи відрізняються від традиційних масивів у мовах низького рівня, де пам'ять виділяється безпосередньо. Вони є об'єктами, де індекси служать ключами. Ця гнучкість дозволяє реалізувати динамічну поведінку, але також вводить деякі особливості.
Доступ за індексом
Масиви базуються на індексах, тобто кожен елемент можна отримати, звертаючись до нього через його позицію:
const arr = [10, 20, 30];
console.log(arr[0]); // 10
console.log(arr[1]); // 20
console.log(arr[arr.length - 1]); // 30 (останній елемент)
Це робить масиви одночасно простими та потужними. Однак наша здатність ефективно використовувати їх залежить від розуміння структур даних та алгоритмів (DSA).
Масиви в JavaScript: Більше ніж просто основи
В JavaScript масиви — це не лише послідовні блоки пам'яті. Давайте розглянемо деякі їх унікальні характеристики.
Рідкісні (Sparse) масиви
Масиви JavaScript не вимагають наявності безперервних елементів, що дозволяє пропускати індекси:
const arr = [];
arr[5] = 'Hello';
console.log(arr); // [empty × 5, "Hello"]
Ця рідкість може призвести до непередбачуваної поведінки при використанні методів, таких як map()
або forEach()
, оскільки ці методи пропускають порожні місця. Наприклад:
const arr = [1, 2, 3];
console.log(typeof arr); // "object"
const sparseArr = [];
sparseArr[3] = 'Test';
console.log(sparseArr); // [empty × 3, "Test"]
Додавання власних властивостей (не рекомендується)
В JavaScript масиви можуть мати власні властивості. Хоча це цікаво, така практика зазвичай не рекомендується:
const arr = [1, 2];
arr.customProperty = "I'm an array!";
console.log(arr.customProperty); // "I'm an array"
Оголошення масивів в JavaScript
JavaScript пропонує кілька способів оголошення масивів:
- Нотація в квадратних дужках
const arr = []; // Динамічна довжина
- Використання конструктора масиву
const arr = new Array(3); // Створює масив з 3 порожніми елементами
- Метод
Array.of
const arr = Array.of(1, 2, 3, 4); // [1, 2, 3, 4]
- Метод
Array.from
const arr = Array.from("array"); // ["a", "r", "r", "a", "y"]
Масиви є ітерабельними
Масиви в JavaScript є ітерабельними, тобто ви можете використовувати цикли та інші функції для маніпулювання ними. Вони успадковують від Array.prototype
, що надає їм доступ до потужних методів, таких як:
map()
filter()
reduce()
some()
every()
find()
findIndex()
groupBy()
(експериментально)
Висновок
Масиви можуть бути як простими, так і складними, залежно від того, як ви їх використовуєте. Вони формують основу для вирішення багатьох завдань у програмуванні, що робить їх необхідними для освоєння. Від їх динамічної природи до потужних методів — масиви JavaScript є універсальним інструментом у арсеналі кожного розробника.
У наступній статті ми глибше розглянемо передові методи роботи з масивами та дослідимо, як вирішувати реальні задачі, використовуючи масиви. До зустрічі і успішного кодування!
До скорої зустрічі!
Перекладено з: [DAY-6] Understanding Arrays in JavaScript