Задать вопрос
@AlexsandrLomaev

Как обработать многомерный массив для вывода определенных парных значений?

Есть многомерный массив (не так давно взялся за их разбор)
let arr = [
    [
        "Alex",
        "Maria",
        "Alena",
        "Dima"
    ],
    [
        21,
        23,
        19,
        20
    ],
    [
        2411,
        4662,
        8853,
        2132
    ]
];


В основном массиве содержится вся информация о пользователях, в первом вложенном - Имена, второй - возраст, третий - условный индификатор. Моя мысль такая, сделать вывод этих вложенных массивов так, чтобы каждая строчка в вложенных массивах совпадала, к примеру (Alex 21 2411) и т.д

Вот что я пробовал сделать
for (let i = 0; i < arr.length; i++) {

    for (let j = 0; j < arr[i].length; j++) {
       
        res.innerHTML += `Arr: ${arr[i][j]}`;
        
    }
};


Так выглядит код целиком
let arr = [
    [
        "Alex",
        "Maria",
        "Alena",
        "Dima"
    ],
    [
        21,
        23,
        19,
        20
    ],
    [
        2411,
        4662,
        8853,
        2132
    ]
];

for (let i = 0; i < arr.length; i++) {

    for (let j = 0; j < arr[i].length; j++) {
       
        res.innerHTML += `Arr: ${arr[i][j]}`;
        
    }
};
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
for (let j = 0; j < arr[0].length; j += 1) {
  for (let i = 0; i < arr.length; i += 1) {
    res.innerHTML += `${arr[i][j]} `;
  }
  res.innerHTML += '<br>';
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F Куратор тега JavaScript
Сделаем таблицу. Какие у неё будут столбцы: const columns = [ 'name', 'age', 'id' ];.

Можно собрать разметку:

res.innerHTML = `
  <table>
    <thead>
      <tr>${columns.map(n => `<th>${n}</th>`).join('')}</tr>
    </thead>
    <tbody>${arr[0]?.map((_, i) => `
      <tr>${arr.map(n => `
        <td>${n[i]}</td>`).join('')}
      </tr>`).join('') ?? ''}
    </tbody>
  </table>`;

Или создавать элементы напрямую:

const table = document.createElement('table');

columns.forEach(function(n) {
  this.append(document.createElement('th'));
  this.lastChild.textContent = n;
}, table.createTHead().insertRow());

arr[0]?.forEach(function(_, i) {
  const tr = this.insertRow();
  arr.forEach(n => tr.insertCell().textContent = n[i]);
}, table.createTBody());

res.append(table);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 11:03
5000 руб./за проект
18 дек. 2024, в 10:44
130000 руб./за проект
18 дек. 2024, в 10:02
7000 руб./за проект