Я новичок в JavaScript, не уверен, что это самый базовый c вопрос. Я пытаюсь создать панель управления Covid-19, используя данные, полученные из внешнего API. Мне удалось получить данные из API. Я могу добавлять строки (одну за другой) из JavaScript без каких-либо проблем. Но есть около 186 стран, я не уверен, как мне динамически перенести sh данные строки в таблицу HTML. Я попытался перебрать массив, но все равно не могу продолжить.
Я предоставил приведенные ниже фрагменты кода, а также внешний API, откуда я извлекаю данные.
Пожалуйста, позвольте мне знаю, как мне динамически вставлять строку в таблицу HTML для всех стран. Заранее большое спасибо.
Текущий выход: https://i.imgur.com/4wywYmJ.png
Внешний API: https://api.covid19api.com/summary
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
crossorigin="anonymous"
/>
<link rel="stylesheet" href="style.css" />
<title>Covid 19 Summary</title>
</head>
<body>
<div class="container">
<h1 class="text-center mt-5">Covid 19 Live Summary in Table format</h1>
<table class="table table-sm table-hover" id="table1">
<thead>
<tr>
<th scope="col">Country</th>
<th scope="col">Total Cases</th>
<th scope="col">Total Deaths</th>
<th scope="col">Total Recovered</th>
</tr>
</thead>
<tbody>
<tr id="data"></tr>
</tbody>
</table>
<br />
<button class="btn btn-info btn-block btn-primary btn-lg" id="refresh">
Refresh Data
</button>
</div>
<script src="app.js"></script>
</body>
</html>
Javascript
window.addEventListener('load', () => {
let api = "https://api.covid19api.com/summary";
let table = document.getElementById("data");
var table1 = document.getElementById("table1");
const refresh = document.getElementById("refresh");
const countries = [];
console.log(table1);
initialize();
function initialize() {
fetch(api).then(response => {
// console.log(response);
return response.json();
}).then(data => {
countries.push(...data.Countries);
console.log(countries);
console.log(countries[1].Country);
for (i = 0; i < countries.length; i++) {
console.log(countries[i]);
}
var row = table1.insertRow(2);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
cell1.innerHTML = countries[1].Country;
cell2.innerHTML = countries[1].TotalConfirmed;
cell3.innerHTML = countries[1].TotalDeaths;
cell4.innerHTML = countries[1].TotalConfirmed;
}
);
}
refresh.addEventListener('click', () => {
table.innerHTML = '';
initialize();
})
});
CSS:
@import url("https://fonts.googleapis.com/css2?family=Oswald:wght@400;700&display=swap");
tr,
td {
text-align: center;
}
body {
font-family: "Oswald", sans-serif;
}