GOOGLE ADS

четверг, 14 апреля 2022 г.

Как преобразовать очень большую таблицу в определенный массив javascript?

Я хочу сделать очень большой массив данных, которые я нашел на этом сайте. Я скопировал большую таблицу с этого сайта в свой проект:

введите описание изображения здесь

Вот пример этой таблицы:

<tr>
<td>Acid Rain</td>
<td>
rain, smoke / rain, smog / rain, sickness / cloud, smoke / cloud, smog
/ cloud, sickness / rain, city
</td>
</tr>

Я хочу преобразовать эту таблицу в массив объектов javascript, например:

[
{
name: "Acid Rain",
elements: [
["rain", "smoke"],
["rain", "smog"],
["rain", "sickness"],
["cloud", "smoke"],
["cloud", "smog"],
["cloud", "sickness"],
["rain", "city"],
],
},
{...},
{...}
];

Причина, по которой я хочу преобразовать это, заключается в том, что ввод вручную займет слишком много времени.


Решение проблемы

Что вы можете сделать, так это проанализировать все trэлементы, а затем прокрутить их, чтобы получить первого и второго дочерних элементов (которые являются tdэлементами), тогда содержимое первых дочерних элементов будет значением имени, а для элементов вы можете разделить содержимое вторые дети сначала с а /затем с ,. Проверьте приведенный ниже пример фрагмента для более подробной информации.


const trs = document.querySelectorAll("tr");
const items = Array.from(trs).map(tr => {
const firstTd = tr.children[0].innerText;
const secondTd = tr.children[1].innerText;

const elements = secondTd.split(" / ").map(t => t.split(", "));

return {
name:firstTd,
elements
};
});
console.log(items)

<table>
<tr>
<td>Acid Rain</td>
<td>
rain, smoke / rain, smog / rain, sickness / cloud, smoke / cloud, smog
/ cloud, sickness / rain, city
</td>
</tr>
</table>

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...