Заполнение объектов через цикл в JavaScript

В предыдущих уроках мы с вами работали с массивами. Давайте теперь аналогичные действия проделаем с объектами.

Пусть у нас есть какой-то объект:

let obj = {};

Давайте заполним этот объект какими-нибудь элементами. Можно сделать это вот так:

let obj = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5};

А можно изначально создать объект пустым, а затем добавить в него данные вот так:

let obj = {}; obj['a'] = 1; obj['b'] = 2; obj['c'] = 3; obj['d'] = 4; obj['e'] = 5;

Объявите пустой объект, а затем заполните его названиями дней недели в качестве ключей, и порядковыми номерами дней недели в качестве значений.

Заполнение объекта в цикле

Пусть у нас есть два массива:

let keys = ['a', 'b', 'c', 'd', 'e']; let values = [1, 2, 3, 4, 5];

Давайте с их помощью сделаем объект, взяв ключи для этого объекта из первого массива, а значения - из второго. Для этого запустим цикл и в цикле будем формировать наш объект:

let keys = ['a', 'b', 'c', 'd', 'e']; let values = [1, 2, 3, 4, 5]; let obj = {}; for (let i = 0; i <= 4; i++) { let key = keys[i]; let value = values[i]; obj[key] = value; } console.log(obj);

Не обязательно вводить переменные для ключа и значения, можно просто поступить вот так:

let keys = ['a', 'b', 'c', 'd', 'e']; let values = [1, 2, 3, 4, 5]; let obj = {}; for (let i = 0; i <= 4; i++) { obj[keys[i]] = values[i]; } console.log(obj);

Даны два массива: первый с названиями дней недели, а второй - с их порядковыми номерами:

let arr1 = ['пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс']; let arr2 = [1, 2, 3, 4, 5, 6, 7];

С помощью цикла создайте объект, ключами которого будут названия дней, а значениями - их номера.

Модифицируйте предыдущую задачу так, чтобы ключами стали номера дней, а значениями - их названия.

Заполнение объекта из другого объекта

Для создания объекта можно также использовать данные другого объекта. Пусть, к примеру, у нас есть вот такой объект:

let obj = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5};

Давайте переберем данный объект циклом for-in и запишем в новый объект элементы, значения которых являются четными числами:

let obj = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}; let result = {}; for (let key in obj) { if (obj[key] % 2 == 0) { result[key] = obj[key]; } } console.log(result); // выведет {'b': 2, 'd': 4};

Дан объект:

let obj = {'a': 12, 'b': 21, 'c': 13, 'd': 23, 'e': 17};

Запишите в новый объект те элементы, значения которых расположены в промежутке от 10 до 20.

Дан объект:

let obj = {1: 'пн', 2: 'вт', 3: 'ср', 4: 'чт', 5: 'пт', 6: 'сб', 7: 'вс'};

Запишите в новый объект дни недели, номера которых являются нечетными числами.

Изменение объекта в цикле

Объекты также можно менять в цикле. Пусть, к примеру, у нас есть вот такой объект:

let obj = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5};

Давайте переберем его циклом for-in и увеличим каждый из его элементов в 2 раза:

let obj = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}; for (let key in obj) { obj[key] = obj[key] * 2; } console.log(obj); // выведет {'a': 2, 'b': 4, 'c': 6, 'd': 8, 'e': 10}

Дан объект:

let obj = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5};

Переберите этот объект циклом и возведите каждый элемент этого объекта в квадрат.

Обмен ключей и значений объекта

Пусть у нас дан следующий объект:

let obj = {a: 1, b: 2, c: 3, d: 4, e: 5};

Давайте поменяем местами ключи и значения в объекте, то сделаем из нашего объекта следующий:

{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}

Для этого переберем циклом for-in исходный объект и создадим при этом новый объект result. Ключами нового объекта сделаем элементы старого (это obj[key]), а значениями нового объекта - ключи старого (это key):

let obj = {a: 1, b: 2, c: 3, d: 4, e: 5}; let result = {}; for (let key in obj) { result[obj[key]] = key; } console.log(result); // выведет {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'}

Самостоятельно, не подсматривая в мой код, выполните переворот какого-нибудь объекта.