如何在 javascript 到 table 的数组中 foreach 数组

how to foreach array in array in javascript to table

我正在尝试将大量数据发送到我的 table .. 数据来自我的控制器 (CI3) 我尝试 json 编码如下:

{"1":{"2":["SOP","SOP 16","YES"]},"3":{"7":["SIP","SIP 12","YES"]},"4":{"18":["SAP","SAP 12","YES"]}}

这就是我尝试在 Javascript 中执行 foreach 的方式:

 const table_show = (data) => {
    console.log(data)
    document.getElementById('mabody').innerHTML = '';

    let str_table = '';
    data.forEach((ir_labs_1,key_ir_1) =>{
        str_table += '<tr id="data_ir_'+key_ir_1+'"><td>POSM</td><td>' + ir_labs_1 + '</td><td id="osa_'+key_ir_1+'">0</td></tr>';

    })
    document.getElementById('mabody').innerHTML = str_table;

}

但是当我 运行 它时我直接得到了这种错误 :

TypeError: data.forEach is not a function

我不确定我的代码有什么问题,我也不知道如何修复它。

谁能告诉我如何解决这个问题?

Object.entries() 方法 returns 给定对象自身的可枚举字符串键控 属性 [键,值] 对的数组。

Object.entries()

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
</head>
<body>
    <div id='mabody'></div>

    <script type="text/javascript">
    const data = {"1":{"2":["SOP","SOP 16","YES"]},"3":{"7":["SIP","SIP 12","YES"]},"4":{"18":["SAP","SAP 12","YES"]}}

    const table_show = (data) => {
    console.log(data)
    document.getElementById('mabody').innerHTML = '';

    let str_table = '';
 
    for (const [key, value] of Object.entries(data)) {
         console.log(`${key}: ${value}`);
         str_table += '<tr id="data_ir_'+key+'"><td>POSM</td><td>' + JSON.stringify(value, null, 2) + '</td><td id="osa_'+key+'">0</td></tr>';
    }

    document.getElementById('mabody').innerHTML = `<table>${str_table}</table>`;
    }

    window.addEventListener('load', (event) => {
        console.log('page is  loaded');
        table_show(data)
    });
   </script>
</body>
</html>