javascript - 为 DataTables aoColumnDefs 创建 JavaScript 数组(JSON 格式)

标签 javascript json datatables

我想为 DataTables 参数 aoColumnDefs 创建以下 JSON 数据:

var aryJSONColTable = [
                        {"sTitle": "Column00", "aTargets": [0]},
                        {"sTitle": "Column01", "aTargets": [1]},
                        {"sTitle": "Column02", "aTargets": [2]},
                        {"sTitle": "Column03", "aTargets": [3]}
                      ]

然后我会将变量放入我的 DataTable 变量声明中,如下所示:

var oTable = $('#report').dataTable({
                                "aoColumnDefs": aryJSONColTable,
                                "bProcessing": true,
                                "bServerSide": true,
                                "bLengthChange": true,
                                "bFilter": true,
                                "aaSorting": [[ 3, "desc" ]],
                                "sScrollX": "100%",
                                "bScrollCollapse": true,
                                "bJQueryUI": true,
                                "sAjaxSource": "./getDataEA.php"
                            });

基于 this useful discussion ,我尝试了一个 JavaScript 循环来创建 JSON 数据 aryJSONColTable,如下所示:

//create JSON array for aoColumnDefs
var aryColTableChecked = ["column00", "column01", "column02", "column03"];
var aryJSONColTable = [];

for (var i in aryColTableChecked) {
    aryJSONColTable.push({
                      "sTitle": aryColTableChecked[i],
                      "aTargets": [i]
                    });
};

我总是从上面的 JavaScript 循环中为数据“aTargets”获取值“1”,我希望为数据“aTargets”获取值 [running_index_number]。

请协助我处理此事。提前谢谢你。

最佳答案

我建议您从 for..in 循环更改为标准的 for 循环,因为使用 for..in 迭代数组是“危险的”,因为如果您使用的库将属性/方法添加到 Array.prototype,那么循环也会迭代这些。

另外,for..in 迭代器i 将是一个字符串创建"aTargets": ["0"],你希望它是一个数字来创建 "aTargets": [0]

var aryColTableChecked = ["column00", "column01", "column02", "column03"];
var aryJSONColTable = [];

for (var i = 0; i <  aryColTableChecked.length; i++) {
    aryJSONColTable.push({
                      "sTitle": aryColTableChecked[i],
                      "aTargets": [i]
                    });
};

似乎工作正常:http://jsfiddle.net/nnnnnn/Ek8tr/

注意:您生成的是不是 JSON,它是一个对象数组。 (JSON 是一种始终是字符串的数据交换格式。JSON 看起来像 JS 对象文字和数组文字语法,但它们不是一回事。)

关于javascript - 为 DataTables aoColumnDefs 创建 JavaScript 数组(JSON 格式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12311420/

相关文章:

javascript - node.js 机器人框架 universalbot beginDialogAction 用法?

javascript - Node.js 身份验证类型错误 : object is not a function

javascript - 这在对象字面量中叫什么?

json - 从 Postman 创建 Firestore 数据库文档

python - 从 API 读取 JSON 返回值

javascript - 在 jQuery DataTables 中的所有行前面放置一个按钮

javascript - 使用 Jinja2 将 Pandas 转换为 DataTable

java - 使用 GSON 时将 Arraylist Value 对象添加到 JSON

javascript - PHP使用复选框从数据表中删除多行

javascript - 为什么选择显示显示的是值而不是标签?