如何修改来自 CSV AJAX 请求的 DataTables 列?

How do I modify DataTables columns from CSV AJAX request?

我正在用 CSV 文件中的数据填充 DataTable。文件中有一些宏逻辑(即 column2 = column1 * 3,column4 = column3 * 3 ...)。

我正在发出 AJAX 请求以从 CSV 文件中获取数据,并在填充 table 之前使用 jQuery CSV 库解析文件。

如何将乘法逻辑应用于 table 中的某些列?

$.ajax({
    url: "../data/data.csv",
    dataType: "text",
    cache: false,
    success: function(csvs){
        data = $.csv.toObjects(csvs);
        table.rows.add(data).draw();
    }
});

var table = $('#totals-table').DataTable({
dom: '<"top"Bf>rt<"bottom"lp>',
buttons: [
    'copy', 'csv', 'excel'
],
columns: [
    {
        "title": "col1",
        "data": "col1"
    },
    {
        "title": "col2",
        "data": "col2"
    },
    {
        "title": "col3",
        "data": "col3"
    },
    {
        "title": "col4",
        "data": "col4"
    }
]

});

您可以在 DataTable 上使用 columnDefs,如下所示:

$('#totals-table').DataTable({
  columnDefs: [{
    "targets": 4,// index of the column where the result should display
    "render": function(data, type, column) {
      return column[4] * column[7]; //target the column you want to multiply by its index
    }
  }]
})

Fiddle here.