0

我得到了这个 Javascript 地图结构:

键(字符串)- 值(数组())

   String "customerId"    =   Array{"123123", "298191", "93202"}
   String "customerName"  =   Array{"fran", "nick", "jan"}
   String "pobox"         =   Array{"18239", "129319", "123123"}

所以基本上,该值是一个包含所有 customerIds、所有 customerNames 等的数组。我要创建的表将在 Javascript 中生成,例如:

customerId   customerName    pobox
123123         fran           18239
298191         nick           129319
93202          jan            123123

是否可以用 Javascript 制作它?试过了,但太复杂了:/

我一直在这样做:

function createBodyRowsByMapObject(map, tbody) {

    for(a in map) {
        var arr = map[a];
        var row = document.createElement("tr");
        for(k in arr) {
                    //here i would be getting the array value.
            createTableData(row, arr[k]);
        }
    }
    tbody.appendChild(row);
}
4

2 回答 2

2

我将假设您的数据结构如下:

var obj = {
    "customerId":["123123","298191","93202"],
    "customerName":["fran","nick","jan"],
    "pobox":["18239","129319","123123"]
};

将其转换为表格比您想象的要容易:

var table = document.createElement('table'), rows = [], k, l, i;
for( k in obj) {
    l = obj[k].length;
    for( i=0; i<l; i++) {
        if( !rows[i]) rows[i] = table.appendChild(document.createElement('tr'));
        rows[i].appendChild(document.createElement('td'))
               .appendChild(document.createTextNode(obj[k][i];
    }
}
document.body.appendChild(table);
于 2013-02-19T18:58:29.013 回答
0

您总是可以尝试使用诸如handlebars.js之类的模板解决方案——这使得吐出标记变得尽可能简单。

于 2013-02-19T18:51:52.723 回答