Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Об'єкт vs масив». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)І **об'єкти**, і **масиви** в JavaScript - це *структури даних*, але у них **різне призначення і спосіб зберігання інформації**: об'єкт зберігає пари **ключ -> значення**, а масив - упорядкований список елементів за індексом. **Ключове:** у JavaScript масив - це частковий випадок об'єкта, просто з додатковими властивостями і поведінкою.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображенняі **об'єкти**, і **масиви** в 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)` |Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.