我正在尝试构建并显示基于数组的表。我周围搜索了一段时间,似乎无法找到答案,为什么我的代码不工作。发布使用JS函数和数组构建表
这是一个简单的函数调用,通过函数参数传入一个数组,但由于某种原因它出现未定义,因为它看起来数组不能传递给函数参数。
我的代码基本概况如下:
<div id="myDiv"></div>
<script>
function myFunction(tableData){
var table = document.createElement('table');
var tableBody = document.createElement('tbody');
tableData.forEach(function(rowData) {
var row = document.createElement('tr');
rowData.forEach(function(cellData) {
var cell = document.createElement('td');
cell.appendChild(document.createTextNode(cellData));
row.appendChild(cell);
});
tableBody.appendChild(row);
});
table.appendChild(tableBody);
};
var array1 = {key1:"value1",key2:"value2",key3:"value3"};
document.getElementById("myDiv").innerHTML = myFunction(array1);
</script>
编辑:这一个就解决了。谢谢评论!
你的“阵列”实际上不是一个数组,它是一个对象,这意味着你不能叫'.forEach()'就可以了,因为这是一个数组的方法。你应该在浏览器的开发控制台看到一个错误,说“像tableData.forEach不是一个函数”。它看起来像你的函数实际期望的是一个数组,如'[['val1','val2'],['val3','val4'],['val5','val6']]''。另外,你的函数不会返回一个值。 – nnnnnn
你将不得不尝试'for..in' – Rajesh
'rowData.forEach'也会期望一个对象阵列 – brk