用Javascript创建表

用Javascript创建表,javascript,Javascript,我有个问题。我正在学习javascript,但我不知道如何创建只在javascript文件上工作的表。我必须为每个字母频率的输出创建一个表,但我不知道怎么做。以下是我应该具备的输出: 一开始我想处理HTML,但我不能,因为这部分与测试有关,我的代码必须通过测试。在这里,我将展示其中一些: display_letter_frequency(letter_frequency("Hello"),document.getElementById("frequency_table")); var

我有个问题。我正在学习javascript,但我不知道如何创建只在javascript文件上工作的表。我必须为每个字母频率的输出创建一个表,但我不知道怎么做。以下是我应该具备的输出:

一开始我想处理HTML,但我不能,因为这部分与测试有关,我的代码必须通过测试。在这里,我将展示其中一些:

display_letter_frequency(letter_frequency("Hello"),document.getElementById("frequency_table"));
    var rows = document.getElementById("frequency_table").querySelectorAll('tr')
    equal(rows.length, 4, "With input String 'Hello' there should be 4 table rows")
    equal(rows[0].querySelectorAll('td')[0].innerHTML, 'H', "1st td of 1st tr should have the value H");
    equal(rows[0].querySelectorAll('td')[1].innerHTML, '1', "2nd td of 1st tr should have the value 1");
    equal(rows[1].querySelectorAll('td')[0].innerHTML, 'E', "1st td of 2nd tr should have the value E");
    equal(rows[1].querySelectorAll('td')[1].innerHTML, '1', "2nd td of 2nd tr should have the value 1");
    equal(rows[2].querySelectorAll('td')[0].innerHTML, 'L', "1st td of 3rd tr should have the value L");
    equal(rows[2].querySelectorAll('td')[1].innerHTML, '2', "2nd td of 3rd tr should have the value 2");
    equal(rows[3].querySelectorAll('td')[0].innerHTML, 'O', "1st td of 4th tr should have the value O");
    equal(rows[3].querySelectorAll('td')[1].innerHTML, '1', "2nd td of 4th tr should have the value 1");
此外,我不能使用console.log,只能编写测试人员将调用的函数的代码。以下是我所做的,但我不知道这是否正确以及如何继续:

function display_letter_frequency(a,dom) {
if(a === undefined){
    return undefined
} else {
    var tbl     = document.createElement("table");
    var tblBody = document.createElement("tbody");
    for(var x in a){
        var row = document.createElement("tr");

        }
    }
}
此代码与我之前编写的一个函数有关,该函数在命令行中计算用户的频率字母:

function letter_frequency(s) {
if(s === undefined){
    return undefined
} else {
    var freq = {};
    for (var i = 0; i < s.length; i++) {
        var character = s.charAt(i).toUpperCase();
        if (freq[character]) {
            freq[character]++;
        } else {
            freq[character] = 1;
        }
    }
}
    return freq;
}
函数字母\u频率{
如果(s==未定义){
返回未定义
}否则{
var freq={};
对于(变量i=0;i
希望问题很清楚,你能帮助我和需要帮助的人。我环顾了一下网络,他们讨论了一些频率表来定义我的问题。我不知道这是否正确

试试看

for(var x in a){
        var row = document.createElement("tr");
        letterCell = document.createElement('td');
        freqCell = document.createElement('td');
        letterCell.innerHTML = x;
        freqCell.innerHTML = a[x];
        row.appendChild(letterCell);
        row.appendChild(freqCell);
        tblBody.appendChild(row);
    }
}
(未测试)

检查此项->

/*javascript*/
var my_val=“asdasd”;
var obj=获取频率(my_val);
var table=document.createElement(“表”);
Object.keys(obj).forEach(函数(key){
var tr=document.createElement(“tr”);
var td_key=document.createElement(“td”);
var txt_key=document.createTextNode(key);
td_key.appendChild(txt_key);
var td_val=document.createElement(“td”);
var txt_val=document.createTextNode(obj[key]);
td_val.appendChild(txt_val);
tr.appendChild(td_键);
tr.appendChild(td_val);
表1.儿童(tr);
});
document.getElementById(“表”).appendChild(表);
函数getFrequency(字符串){
var freq={};

对于(var i=0;iGlad我可以提供帮助。感谢@JLRishe对拼写错误的更正;-)请查看MDN,它也在中列出。
/* javascript */
var my_val = "asdasd";
var obj = getFrequency(my_val);

var table = document.createElement("table");

Object.keys(obj).forEach(function(key) {
    var tr = document.createElement("tr");

    var td_key = document.createElement("td");
    var txt_key = document.createTextNode(key);
    td_key.appendChild(txt_key);

    var td_val = document.createElement("td");
    var txt_val = document.createTextNode(obj[key]);
    td_val.appendChild(txt_val);
    tr.appendChild(td_key);
    tr.appendChild(td_val);
    table.appendChild(tr);
});

document.getElementById("table").appendChild(table);





function getFrequency(string) {
    var freq = {};
    for (var i=0; i<string.length;i++) {
        var character = string.charAt(i);
        if (freq[character]) {
           freq[character]++;
        } else {
           freq[character] = 1;
        }
    }

    return freq;
}




   /* html */
<div id="table">
</div>


/* CSS */
td
{
    border: 1px solid black;
}