将javascript对象转换为具有列标题的数据表



我有一个结构如下的对象,我想知道如何使其成本和标题成为数据表的列标题,而值成为每列的行?例如,在成本列中,行将是2500000、1500000和15000000,而在相应的标题列中,行将是title0、title1和title2。

{成本:{0:2500000、1:1500000 2:1500000},标题:{0:"title0" 1:"title1", 2:"title2"}}

解决方案:

const data = {
cost: { 0: 2500000, 1: 1500000, 2: 1500000 },
title: { 0: "title0", 1: "title1", 2: "title2" },
};
$(document).ready(function () {
let table = $("#table_id").DataTable({
columns: [...Object.keys(data).map((i) => ({ title: i }))],
"order": [[ 1, "asc" ]]
});
let preparedData = Object.entries(data)
.map(([key, value]) => Object.entries(value).map(([k, v]) => v))
.reduce((a, b) => {
return a.length ? a.map((v, i) => [...v, b[i]]) : b.map((v) => [v]);
}, []);
table.rows.add(preparedData).draw()
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.23/js/jquery.dataTables.js"></script>
<link href="https://cdn.datatables.net/1.10.23/css/jquery.dataTables.css" rel="stylesheet"/>
<table id="table_id" class="display" style="width:100%"></table>

最新更新