JavaScript 动态 object 键 ejs
JavaScript dynamic object keys ejs
我实在找不到形容词。本质上我有一个数据库可以有任意数量的 tables 具有不同的列长度和名称。我有一个 table 定义每个 table 和它的列。我有一个查询来搜索这些 table 中的值,并且我使用 express 将搜索结果和列传递给 ejs。我需要的是回应结果。我有:
<div class="row">
<table>
<thead>
<tr>
<% columns.forEach(function(column) { %>
<th><%= column %></th>
<% }); %>
</tr>
</thead>
...
这会正确输出 table header 中的列名称。然而,我终生无法弄清楚如何打印实际结果。我尝试了很多不同的方法,但我一直得到的都是未定义或 [Object object]。我目前有这个:
<tbody>
<% for(var r = 0; r < results.length; r++) { %>
<tr>
... need to access column here ...
</tr>
<% } %>
</tbody>
我首先尝试了以下(上面的内部)
<% for(var key in Object.keys(results[r])) { %>
<%= results[r].key %>
<% } %>
随后进行了许多不同的尝试。我想问题是不知道可能的键名。老实说,我什至不知道要搜索什么。我脑子一片空白。
非常感谢任何帮助。
Object.keys
returns 对象中所有键的数组。您可以使用 forEach
迭代这些键,通过 object[key]
访问对象的值
此外,您可以在结果中使用 forEach
而不是 for
来保持整洁。
<% results.forEach(function (result) { %>
<tr>
<% Object.keys(result).forEach(function (key) { %>
<td><%= result[key] %> </td>
<% }) %>
</tr>
<% }) %>
现代浏览器现在有箭头,所以可以稍微简化一下:
<% results.forEach(result => { %>
<tr>
<% Object.keys(result).forEach(key => { %>
<td><%= result[key] %> </td>
<% }) %>
</tr>
<% }) %>
我实在找不到形容词。本质上我有一个数据库可以有任意数量的 tables 具有不同的列长度和名称。我有一个 table 定义每个 table 和它的列。我有一个查询来搜索这些 table 中的值,并且我使用 express 将搜索结果和列传递给 ejs。我需要的是回应结果。我有:
<div class="row">
<table>
<thead>
<tr>
<% columns.forEach(function(column) { %>
<th><%= column %></th>
<% }); %>
</tr>
</thead>
...
这会正确输出 table header 中的列名称。然而,我终生无法弄清楚如何打印实际结果。我尝试了很多不同的方法,但我一直得到的都是未定义或 [Object object]。我目前有这个:
<tbody>
<% for(var r = 0; r < results.length; r++) { %>
<tr>
... need to access column here ...
</tr>
<% } %>
</tbody>
我首先尝试了以下(上面的内部)
<% for(var key in Object.keys(results[r])) { %>
<%= results[r].key %>
<% } %>
随后进行了许多不同的尝试。我想问题是不知道可能的键名。老实说,我什至不知道要搜索什么。我脑子一片空白。
非常感谢任何帮助。
Object.keys
returns 对象中所有键的数组。您可以使用 forEach
迭代这些键,通过 object[key]
此外,您可以在结果中使用 forEach
而不是 for
来保持整洁。
<% results.forEach(function (result) { %>
<tr>
<% Object.keys(result).forEach(function (key) { %>
<td><%= result[key] %> </td>
<% }) %>
</tr>
<% }) %>
现代浏览器现在有箭头,所以可以稍微简化一下:
<% results.forEach(result => { %>
<tr>
<% Object.keys(result).forEach(key => { %>
<td><%= result[key] %> </td>
<% }) %>
</tr>
<% }) %>