Перебор многомерных комбинаций в JavaScript

Пусть дан следующий массив с юзерами:

let users = [ { name: 'name1', age: 31, }, { name: 'name2', age: 32, }, { name: 'name3', age: 33, }, ];

Давайте переберем этот массив циклом и выведем данные юзеров на экран:

for (let user of users) { document.write(user.name + ' ' + user.age + '<br>'); }

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

Дан следующий массив работников:

let employees = [ { name: 'name1', salary: 300, }, { name: 'name2', salary: 400, }, { name: 'name3', salary: 500, }, ];

Выведите на экран данные каждого работника в формате имя - зарплата.

Дан следующий массив работников:

let employees = [ { name: 'name1', salary: 300, }, { name: 'name2', salary: 400, }, { name: 'name3', salary: 500, }, ];

Выведите на экран сумму зарплат всех работников.

Дан следующий массив работников:

let employees = [ { name: 'name1', salary: 300, age: 28, }, { name: 'name2', salary: 400, age: 29, }, { name: 'name3', salary: 500, age: 30, }, { name: 'name4', salary: 600, age: 31, }, { name: 'name5', salary: 700, age: 32, }, ];

Выведите на экран сумму зарплат тех работников, возраст которых равен или более 30 лет.

Дан следующий массив работников, в котором поле dismissed хранит в себе информацию о том, уволен работник или нет (true - уволен):

let employees = [ { name: 'name1', salary: 300, dismissed: false, }, { name: 'name2', salary: 400, dismissed: true, }, { name: 'name3', salary: 500, dismissed: false, }, { name: 'name4', salary: 600, dismissed: true, }, { name: 'name5', salary: 700, dismissed: false, }, ];

Выведите на экран имена и зарплаты неуволенных работников.

Сложные структуры

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

let students = { 'group1': ['student11', 'student12', 'student13'], 'group2': ['student21', 'student22', 'student23'], 'group3': ['student31', 'student32'], };

Пусть количество групп и количество студентов в каждой группе может быть любым.

Давайте выведем на экран имена всех студентов, перебрав наш объект двумя вложенными циклами.

Как вы видите, у нас объект с массивами. Это значит, что первый цикл должен быть по объекту, а второй - по массивам. То есть первый цикл будет for-in, а второй - for-of, вот так:

for (let group in students) { for (let name of students[group]) { console.log(name); } }

Дана следующая структура с данными:

let data = { 1: [ 'data11', 'data12', 'data13', ], 2: [ 'data21', 'data22', 'data23', ], 3: [ 'data31', 'data32', 'data33', 'data34', 'data35', ], 4: [ 'data41', 'data42', ], };

С помощью вложенных циклов выведите на экран все строки с данными.

Дана следующая структура с данными:

let data = [ { 1: 'data11', 2: 'data12', 3: 'data13', 4: 'data14', }, { 1: 'data21', 2: 'data22', 3: 'data33', }, { 1: 'data31', 2: 'data32', }, ];

Количество объектов в массиве и количество элементов в объекте может быть произвольным. С помощью вложенных циклов выведите на экран все строки с данными.

Дана следующая структура с данными:

let data = [ { 1: [ 'data111', 'data112', 'data113', ], 2: [ 'data121', 'data122', 'data123', ], }, { 1: [ 'data211', 'data212', 'data213', ], 2: [ 'data221', 'data222', 'data223', 'data224', ], 3: [ 'data231', 'data232', 'data233', 'data234', 'data235', ], }, { 1: [ 'data411', 'data412', 'data413', ], 2: [ 'data421', ], }, ];

С помощью вложенных циклов выведите на экран все строки с данными.