使用 Javascript 数组和对象创建表

Ric*_*ano 3 javascript jquery html-table

我有一个数组和一个对象:

labels = ['ID','Name']; 
object = {
    ["id": "1", 'name': "richard"],
    ["id": "2", 'name': "santos"]
};
Run Code Online (Sandbox Code Playgroud)

我必须创建一个这样的表:

<table>
<thead>
    <tr>
        <td>ID</td>
        <td>Name</td>
    </tr>
</thead>
<tbody>
    <tr>
        <td>Richard</td>
        <td>Santos</td>
    </tr>
</tbody>
Run Code Online (Sandbox Code Playgroud)

问题是:
“对象”变量有时可能有不同的键名,所以我必须用其他对象动态创建这个表,我整天都在尝试这样做但没有成功,有人可以帮助我吗?我是 Javascript 的新手。obs:标签和对象变量始终具有相同的大小。

某种物体。

var labels = ['ID','NOME'];
var object = {
    ["id": "1", 'nome': "richard"],
    ["id": "2", 'nome': "adriana"]
};

var labels = ['ID','NAME', 'PLATE'];
var object = {
    ["id": "1", 'nome': "jetta",  'plate': "DFG-1222"],
    ["id": "2", 'nome': "fusion", 'plate': "DFF-3342"]
};
Run Code Online (Sandbox Code Playgroud)

Leo*_*Leo 5

一开始有两个问题:

  1. 那是 N a me 还是 N o me?请修正您的错字(我知道 Nome 是法语,所以如果不是错字,我建议您引入i18n解决方案)。
  2. 另外请注意您的语法错误(有些已经给出了您可以考虑的建议编辑)。

之后,这是我根据输入数据以编程方式创建表的方法:

function buildTable(labels, objects, container) {
  var table = document.createElement('table');
  var thead = document.createElement('thead');
  var tbody = document.createElement('tbody');

  var theadTr = document.createElement('tr');
  for (var i = 0; i < labels.length; i++) {
    var theadTh = document.createElement('th');
    theadTh.innerHTML = labels[i];
    theadTr.appendChild(theadTh);
  }
  thead.appendChild(theadTr);
  table.appendChild(thead);

  for (j = 0; j < objects.length; j++) {
    var tbodyTr = document.createElement('tr');
    for (k = 0; k < labels.length; k++) {
      var tbodyTd = document.createElement('td');
      tbodyTd.innerHTML = objects[j][labels[k].toLowerCase()];
      tbodyTr.appendChild(tbodyTd);
    }
    tbody.appendChild(tbodyTr);
  }
  table.appendChild(tbody);

  container.appendChild(table);
}

var labels1 = ['ID', 'Name']; 
var objects1 = [
  {"id": "1", 'name': "richard"},
  {"id": "2", 'name': "santos"}
];

var labels2 = ['ID', 'NOME'];
var objects2 = [
  {"id": "1", 'nome': "richard"},
  {"id": "2", 'nome': "adriana"}
];

var labels3 = ['ID', 'NAME', 'PLATE'];
var objects3 = [
  {"id": "1", 'name': "jetta",  'plate': "DFG-1222"},
  {"id": "2", 'name': "fusion", 'plate': "DFF-3342"}
];

buildTable(labels1, objects1, document.getElementById('a'));
buildTable(labels2, objects2, document.getElementById('b'));
buildTable(labels3, objects3, document.getElementById('c'));
Run Code Online (Sandbox Code Playgroud)
table {
  border-collapse: collapse;
}
th, td {
  border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)
<div id="a"><p>Table 1</p></div>
<div id="b"><p>Table 2</p></div>
<div id="c"><p>Table 3</p></div>
Run Code Online (Sandbox Code Playgroud)