Javascript 用数组填充html表时出现问题

Javascript 用数组填充html表时出现问题,javascript,Javascript,希望在我遇到的一个问题上得到一些帮助(这里是Javascript新手!) 我试图用一些数组填充HTML表。我希望各个数组中的每个值都位于自己的行中 所以如果我的数组是Cases和death,我希望Cases[1],death[1]都在第1行 案例[2],第2行死亡[2]等 我现在遇到的问题是,尽管数组正在填充,但它们都在连接/连接到表中的第1行 它们只是添加到第1行,而不是单独的一行(第2、3、4行等) 我该怎么做 function Table(){ var dResp

希望在我遇到的一个问题上得到一些帮助(这里是Javascript新手!)

我试图用一些数组填充HTML表。我希望各个数组中的每个值都位于自己的行中

所以如果我的数组是Cases和death,我希望Cases[1],death[1]都在第1行

案例[2],第2行死亡[2]等

我现在遇到的问题是,尽管数组正在填充,但它们都在连接/连接到表中的第1行

它们只是添加到第1行,而不是单独的一行(第2、3、4行等)

我该怎么做

    function Table(){
    
    var dResponse = [
    {"state":entered_states.slice(0),"cases":cases.slice(0),"deaths":deaths.slice(0),"drate":drate.slice(0)}
    ];

    var results=document.getElementById('Results');
    results.innerHTML += "<tr><th>State</th><th>Cases</th><th>Deaths</th><th>Death rate</th></tr>";
        for(var obj in dResponse){
        results.innerHTML += "<tr><td>"+dResponse[obj].state+"</td><td>"+dResponse[obj].cases+"</td><td>"+dResponse[obj].deaths+"</td><td>"+dResponse[obj].drate+"</td></tr>";
    
        }
    }
    window.onload=Table;
函数表(){
变量响应=[
{“state”:输入_states.slice(0),“cases”:cases.slice(0),“death”:death.slice(0),“drate”:drate.slice(0)}
];
var results=document.getElementById('results');
results.innerHTML+=“statecasesdeath rate”;
for(响应中的var obj){
results.innerHTML+=“”+dResponse[obj]。状态+“”+dResponse[obj]。病例+“”+dResponse[obj]。死亡+“”+dResponse[obj]。drate+“”;
}
}
window.onload=表格;

您需要在所有行之前添加
t正文
。当您尝试追加
时,它会为每一行创建一个新的
tbody

函数表(){
变量响应=[
{“state”:“test”,“cases”:“test2”,“death”:“test3”,“drate”:“test4”},
{“state”:“test”,“cases”:“test2”,“death”:“test3”,“drate”:“test4”},
];
var results=document.getElementById('results-body');
for(响应中的var obj){
results.innerHTML+=“”+dResponse[obj]。状态+“”+dResponse[obj]。病例+“”+dResponse[obj]。死亡+“”+dResponse[obj]。drate+“”;
}
}
window.onload=表格

州病例死亡率

因此,您的
响应声明中出现了一些有趣的事情。在0处进行切片将只将每个整个数组分配给一个对象,从而只产生一行,其中四个单元格包含一个单元格中的整个数组。通过使用多个对象填充dresponse,可以将它们拆分为不同行中的不同单元格。如果我不清楚,请随时进一步询问,希望这有帮助!:)

(编辑:如果希望数组保持不变,可以使用索引而不是
shift()

下面是我所做的(Table()之前的任何操作都只是为了测试):

var输入状态=[],
案例=[],
死亡人数=[],
drate=[];
(() => {
var i=0;
变量字段=[
进入美国,,
案例,
死亡,
德拉特
];
while(++i){
push(`Test${i}`);
});
}
})();
函数表(){
var responseLen=案例长度;
var-dResponse=[];
for(设i=0;i


添加要从中构造表的示例JavaScript对象变量感谢您的帮助。我已经尝试了你最初的建议,但仍然有一些问题,没有新的行。看起来如果我改变我最初的let语句,dResponse语句,从我最初拥有的state:“entered_states.slice(0)”,“cases”:cases.slice(0)等等。对你来说,它确实有效,那么我的问题是,我如何从数组中获取所有值?如果我使用var dResponse=[{“state”:entered_states.slice,代码似乎不起作用(1) ,“cases”:cases.slice(0),“death”:death.slice(0),“drate”:drate.slice(0)},];@Valador1988我需要更多关于进入的州、案例、death和drate的信息。这是一个单一值?数组?如果你提供完整的示例,我可能会帮助你Hi BjarkeBr-这太棒了!它完全如我所希望的那样工作!我从来不知道.shift()[这里的新手!]因此,这给了我一些阅读材料!如果你不介意的话,我有两个最后的问题,我希望你能把我推向正确的方向;1)如何添加一个表边框?我试着按常量添加到标签中,但是它完全取代了数据。2)是否可以根据数组中的一个数组来列出表中的结果,例如,用例的一个例子?非常感谢帮助!1)表边框,我会考虑一个文体上的关切,为此我会把这个放进去。在css样式表中。如果您仅在带有附加脚本的单个文件项目中工作,则可以使用
style
标记内联。例如:
#Results{border:1px solid black;}
您可以在2)了解有关css的更多信息。这是绝对可能的,您必须对对象数组进行排序(
dresponse
)。有关声明排序背后逻辑的
compare
函数,请参见,您可以执行类似
function compare(a,b){返回a[“drate”]-b[“drate”];}
。drate将决定顺序。反转方向只需要翻转算术运算。我强烈建议您阅读更多关于比较函数的内容,并考虑添加一些错误处理,如果您使用此代码段:)