Jquery datatables是对象的对象,而不是对象数组

Jquery datatables是对象的对象,而不是对象数组,jquery,arrays,datatables,Jquery,Arrays,Datatables,我对js和datatables的整个领域都很陌生 如何在数据表中表示这一点 var data = {"jaxm": { "name": "Tiger Nixon", "position": "System Architect" }, "jaxb" : { "name": "Garrett Winters", "position": "Accountant" } } 我试过了 $(duTable).DataTa

我对js和datatables的整个领域都很陌生

如何在数据表中表示这一点

var data = {"jaxm":
    {
      "name": "Tiger Nixon",
      "position": "System Architect"
    },
    "jaxb" :
    {
     "name": "Garrett Winters",
     "position": "Accountant"
    }

}
我试过了

$(duTable).DataTable({
    data:  data,
});
不确定这在没有数组的情况下是否可行,但即使是我也无法使用

$(duTable).DataTable({
    data:  data.jaxm,
});
你不能(简短的回答)。上面的内容更像是一个哈希表,或者一种关联数组:您有一个对象,其中有多个键(不是索引),每个键持有一个对象。您需要将此类构造清理到索引数组中:

function sanitizeData() {
  var d = [];
  Object.keys(data).forEach(function(key) {
    d.push(data[key]);
  });
  return d;
}

var table = $('#example').DataTable({
  data:  sanitizeData(),
  // **and** instruct dataTables which object property belongs to which column
  columns: [
    { data: 'name' },
    { data: 'position' }
  ]
})  
请参见演示->

它基本上只是一个算法版本的

var table = $('#example').DataTable({
  data:  [data.jaxm, data.jaxb],
  columns: [
    { data: 'name' },
    { data: 'position' }
  ]
})  

这也会起到同样的作用。因此,您可以使用
data:[data.jaxm]
作为最后一次尝试“打印单行”的解决方案。无论哪种方式,都需要将索引数组传递给数据表

对于该示例输入,您希望该表是什么样的?谢谢您的回答,这可以完成任务,但是考虑到它。。。非常奇怪的是,datatables不允许使用这种json数据:s