В предыдущих уроках мы с вами работали с массивами. Давайте теперь аналогичные действия проделаем с объектами.
Пусть у нас есть какой-то объект:
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'}
Самостоятельно, не подсматривая в мой код, выполните переворот какого-нибудь объекта.