将数组传递给 HTML table 或变量
Passing an array into an HTML table or variable
我正在尝试将来自 API 调用的信息传递到 HTML table,然后我还可以将其用于图表。附上数组图片以显示数据结构。我不断收到 column_names 不可迭代的错误,但经过数小时的搜索后我仍无法解决。我认为这与我的数组中的名称有关,但找不到解决方案。我是新手,我觉得答案非常简单,所以任何帮助或对我的错误的解释都将不胜感激。
数组格式
async function loadintotable(url, table) {
const tableHead = table.querySelector('thead');
const tableBody = table.querySelector('tbody');
const response = await fetch(url);
const { column_names, data } = await response.json();
tableHead.innerHTML = '<tr></tr>';
tableBody.innerHTML = '';
for (const headerText of column_names) {
const headerElement = document.createElement('th');
headerElement.textContent = headerText;
tableHead.querySelector('tr').appendChild(headerElement);
}
for (const row of data) {
const rowElement = document.createElement('tr');
for (const cellText of row) {
const cellElement = document.createElement('td');
cellElement.textContent = cellText;
rowElement.appendChild(cellElement);
}
tableBody.appendChild(rowElement);
}
}
您的api回复格式为
{
dataset: {
column_names: [],
data: []
}
}
因此,为了访问 column_names 和数据,您必须
const json = await response.json();
const { column_names, data } = json.dataset;
或在一行中
const { column_names, data } = (await response.json()).dataset;
注意行尾的 .dataset
我正在尝试将来自 API 调用的信息传递到 HTML table,然后我还可以将其用于图表。附上数组图片以显示数据结构。我不断收到 column_names 不可迭代的错误,但经过数小时的搜索后我仍无法解决。我认为这与我的数组中的名称有关,但找不到解决方案。我是新手,我觉得答案非常简单,所以任何帮助或对我的错误的解释都将不胜感激。
数组格式
async function loadintotable(url, table) {
const tableHead = table.querySelector('thead');
const tableBody = table.querySelector('tbody');
const response = await fetch(url);
const { column_names, data } = await response.json();
tableHead.innerHTML = '<tr></tr>';
tableBody.innerHTML = '';
for (const headerText of column_names) {
const headerElement = document.createElement('th');
headerElement.textContent = headerText;
tableHead.querySelector('tr').appendChild(headerElement);
}
for (const row of data) {
const rowElement = document.createElement('tr');
for (const cellText of row) {
const cellElement = document.createElement('td');
cellElement.textContent = cellText;
rowElement.appendChild(cellElement);
}
tableBody.appendChild(rowElement);
}
}
您的api回复格式为
{
dataset: {
column_names: [],
data: []
}
}
因此,为了访问 column_names 和数据,您必须
const json = await response.json();
const { column_names, data } = json.dataset;
或在一行中
const { column_names, data } = (await response.json()).dataset;
注意行尾的 .dataset