Как обойти всю таблицу по tr и записать данные в массив JS?

Всем привет!! У меня есть таблица такого вида:
<table>
<thead>
<tr>
<th>ID</th>
<th>Object1</th>
<th>Object2</th>
</tr>
</thead>
<tbody>
<tr>
     <td id-object='ID'></td>
     <td object-name="object1">3442</td>
     <td object-name="object2">10045</td>
</tr>
</tbody>
</table>

Мне необходимо чтобы скрипт проходил по ячейкам каждой таблицы и создавал массив вида
Myarray['ID']={"object1":3442, "object2":10045......}, но только чтобы ключи задавались циклом считывая атрибут ячейки "object-name".
  • Вопрос задан
  • 382 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const idAttr = 'id-object';
const propAttr = 'object-name';

const data = Array
  .from(document.querySelectorAll('table tbody tr'))
  .reduce((table, tr) => (
    table[tr.querySelector(`[${idAttr}]`).getAttribute(idAttr)] = Array
      .from(tr.querySelectorAll(`[${propAttr}]`))
      .reduce((row, td) => (row[td.getAttribute(propAttr)] = td.innerText, row), {}),
    table
  ), {});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы