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

Вот пример этой таблицы:
<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>
Комментариев нет:
Отправить комментарий