Об'єкт 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]); // 12. Порядок
Масив гарантує порядок елементів, а в об'єкті порядок властивостей не завжди важливий (хоча в сучасному 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
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.