Перебор многомерных структур JavaScript

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

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

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

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

javascriptfor (let group in students) {
  for (let name of students[group]) {
    console.log(name);
  }
}
Задание 1

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

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

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

Задание 2

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

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

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

Задание 3

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

javascriptlet data = [
  {
    1: [
      'data111',
      'data112',
      'data113',
    ],
    2: [
      'data121',
      'data122',
      'data123',
    ],
  },
  {
    1: [
      'data211',
      'data212',
      'data213',
    ],
    2: [
      'data221',
      'data222',
      'data223',
    ],
  },
  {
    1: [
      'data411',
      'data412',
      'data413',
    ],
    2: [
      'data421',
      'data422',
      'data423',
    ],
  },
];

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