Skip to main content

Об'єкт vs масив

і об'єкти, і масиви в JavaScript - це структури даних, але у них різне призначення і спосіб зберігання інформації.


Коротко

ВластивістьОб'єктМасив
Що зберігаєПари ключ -> значенняУпорядкований список елементів за індексом
КлючіСтроки або SymbolАвтоматичні числові індекси
Порядок елементівНе гарантуєтьсяГарантований
Тип структуриАсоціативнаПослідовна
Підходить дляОпису сутностей (користувач, товар тощо)Списків, колекцій, наборів даних
МетодиObject.keys(), Object.values() та ін.map(), filter(), push(), pop() та ін.
Перевірка типуtypeof obj === 'object'Array.isArray(arr)

Приклад об'єкта

javascript
const user = { name: 'Богдан', age: 25, city: 'Київ' }; console.log(user.name); // "Богдан"

Тут ключі - строки ("name", "age", "city") і порядок властивостей не має значення.


Приклад масиву

javascript
const numbers = [10, 20, 30]; console.log(numbers[0]); // 10

Тут елементи впорядковані: 0 → 10, 1 → 20, 2 → 30.


Ключові відмінності

1. Індексація

  • У масиві індекси числові й ідуть по порядку.
  • В об'єкті ключі - довільні строки.
javascript
const obj = { a: 1, b: 2 }; const arr = [1, 2]; console.log(obj['a']); // 1 console.log(arr[0]); // 1

2. Порядок

Масив гарантує порядок елементів, а в об'єкті порядок властивостей не завжди важливий (хоча в сучасному JS він зберігається за порядком додавання).


3. Методи

Масиви мають спеціальні методи для роботи з колекціями:

javascript
const arr = [1, 2, 3]; console.log(arr.map(x => x * 2)); // [2, 4, 6]

Об'єкти - ні, але їх можна перетворити на масив:

javascript
const obj = { a: 1, b: 2, c: 3 }; console.log(Object.values(obj)); // [1, 2, 3]

4. Призначення

ТипВикористовується для
Об'єктСтруктурованих даних (користувач, замовлення, налаштування)
МасивПослідовностей (списки товарів, повідомлення, числа)

5. Перевірка типу

javascript
const arr = [1, 2, 3]; const obj = { a: 1 }; console.log(typeof arr); // "object" (!) - технічно масив теж об'єкт console.log(Array.isArray(arr)); // true

У JavaScript масив - це частковий випадок об'єкта, просто з додатковими властивостями і поведінкою.


ПІДСУМОК

КритерійОб'єктМасив
Зберігання"ключ -> значення"індексовані елементи
Ключістроки / символичисла
Порядокне гарантуєтьсязберігається
МетодиObject.*map, filter, push, forEach
Ідеальний дляопису сутностейроботи зі списками
Перевірка типуtypeof obj === 'object'Array.isArray(arr)

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.