Iterowanie po wielowymiarowych strukturach JavaScript

Załóżmy, że mamy następujący obiekt ze studentami:

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

Wyświetlmy na ekranie imiona wszystkich studentów, iterując po naszym obiekcie za pomocą dwóch zagnieżdżonych pętli.

Jak widzisz, mamy obiekt z tablicami. Oznacza to, że pierwsza pętla powinna być po obiekcie, a druga - po tablicach. To znaczy pierwsza pętla będzie for-in, a druga - for-of, o tak:

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

Dana jest następująca struktura z danymi:

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

Za pomocą zagnieżdżonych pętli wyświetl na ekranie wszystkie ciągi znaków z danymi.

Задание 2

Dana jest następująca struktura z danymi:

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

Za pomocą zagnieżdżonych pętli wyświetl na ekranie wszystkie ciągi znaków z danymi.

Задание 3

Dana jest następująca struktura z danymi:

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',
    ],
  },
];

Za pomocą zagnieżdżonych pętli wyświetl na ekranie wszystkie ciągi znaków z danymi.