06. Массивы и объекты

Что такое массив

Массив — это упорядоченный список значений. Он позволяет хранить много данных под одним именем.
Массив — это как коробка с ячейками: у каждой есть свой номер (индекс), и в каждой хранится что-то своё.

Создание массива


let fruits = ['яблоко', 'банан', 'груша'];
console.log(fruits);

Доступ к элементам


console.log(fruits[0]); // яблоко
console.log(fruits[1]); // банан

Индексация начинается с 0, то есть первый элемент — с индексом 0.

Изменение элементов


fruits[1] = 'апельсин';
console.log(fruits); // ['яблоко', 'апельсин', 'груша']

Добавление и удаление элементов

  • push() — добавить в конец
  • pop() — удалить с конца
  • unshift() — добавить в начало
  • shift() — удалить из начала

let animals = ['кот', 'собака'];
animals.push('попугай'); // ['кот', 'собака', 'попугай']
animals.pop(); // ['кот', 'собака']
animals.unshift('тигр'); // ['тигр', 'кот', 'собака']
animals.shift(); // ['кот', 'собака']

Перебор массива


let numbers = [10, 20, 30];
for (let i = 0; i < numbers.length; i++) {
  console.log(numbers[i]);
}

А с помощью метода forEach():


numbers.forEach(function(num, index) {
  console.log(index + ': ' + num);
});

Методы массивов

Массивы имеют десятки удобных методов. Вот самые популярные:
  • map() — создаёт новый массив, применяя функцию к каждому элементу
  • filter() — фильтрует элементы по условию
  • find() — находит первый элемент, подходящий под условие
  • includes() — проверяет, есть ли значение в массиве

let nums = [1, 2, 3, 4, 5];
let doubled = nums.map(n => n * 2);
console.log(doubled); // [2, 4, 6, 8, 10]

let even = nums.filter(n => n % 2 === 0); console.log(even); // [2, 4]

console.log(nums.includes(3)); // true

Что такое объект

Объект — это набор свойств, где каждое свойство имеет ключ (имя) и значение.
Если массив — это список, то объект — это словарь, где у каждого слова есть значение.

Создание объекта


let user = {
  name: 'Анна',
  age: 25,
  city: 'Москва'
};

Доступ к свойствам


console.log(user.name); // Анна
console.log(user['age']); // 25

Изменение и добавление свойств


user.age = 26;
user.email = 'anna@mail.com';
console.log(user);

Удаление свойства


delete user.city;
console.log(user);

Вложенные объекты и массивы

JavaScript позволяет создавать сложные структуры данных.

let company = {
  name: 'TechCorp',
  employees: [
    { name: 'Анна', role: 'разработчик' },
    { name: 'Иван', role: 'дизайнер' }
  ],
  address: {
    city: 'Москва',
    street: 'Ленина, 10'
  }
};

console.log(company.employees[0].name); // Анна console.log(company.address.city); // Москва

Перебор объектов

Чтобы пройтись по всем ключам объекта, используют цикл for...in.

let car = { brand: 'Toyota', model: 'Camry', year: 2023 };
for (let key in car) {
  console.log(key + ': ' + car[key]);
}

Сравнение массивов и объектов

  • Массив — это список элементов по порядку (индексы: 0, 1, 2...)
  • Объект — это набор свойств (ключ: значение)
  • Оба могут содержать любые типы данных, включая другие массивы и объекты

Мини-практика

  • Создайте массив с тремя вашими любимыми фильмами и выведите их по одному.
  • Создайте объект `book` с полями: title, author, year и добавьте метод `info()`, который выводит полное описание.
  • Создайте массив объектов пользователей и выведите имена всех, кто старше 18.

Пример решения


let book = {
  title: '1984',
  author: 'Джордж Оруэлл',
  year: 1949,
  info: function() {
    console.log(`${this.title} (${this.year}) — автор: ${this.author}`);
  }
};

book.info();

let users = [ { name: 'Анна', age: 17 }, { name: 'Иван', age: 22 }, { name: 'Мария', age: 19 } ];

users.forEach(u => { if (u.age > 18) console.log(u.name); });

Советы новичкам

  • Для коллекций с порядком — используйте массивы.
  • Для описания сущностей с именованными свойствами — используйте объекты.
  • Не бойтесь комбинировать: объект внутри массива и наоборот — это нормально!
  • Методы `map`, `filter`, `forEach` — ваши лучшие друзья для работы с массивами.

Итоги урока

Теперь вы знаете:
  • Что такое массивы и как с ними работать.
  • Как добавлять, изменять и удалять элементы.
  • Что такое объект и как обращаться к его свойствам.
  • Как комбинировать данные и строить сложные структуры.