Javascript 如何迭代数据表中的特定列?

Javascript 如何迭代数据表中的特定列?,javascript,json,datatable,datatables,Javascript,Json,Datatable,Datatables,我有一个JSON文件,看起来像 [ { "Title": "Something", "FileName": "2014/mycollege/myvolume.pdf", "Course": "01 - Dangerous Book for Boys", "Year": "2014", "Category": "Ethics", "Group": "East Campus

我有一个JSON文件,看起来像

[
    {
        "Title":    "Something",
        "FileName": "2014/mycollege/myvolume.pdf",
        "Course":   "01 - Dangerous Book for Boys",
        "Year":     "2014",
        "Category": "Ethics",
        "Group":    "East Campus"
    },

函数getMyEdMaterials(结果){ $.getJSON(“/materials/assets/json/materials.json”,函数(数据){ for(var输入数据){ datatableObject[data[key].Group]=datatableObject[data[key].Group]| |[]; datatableObject[data[key].Group].push(data[key]); datatableObject[“所有”]=datatableObject[“所有”]| |[]; datatableObject[“全部”].push(数据[键]); } for(datatableObject中的var键){ console.log(key.toLowerCase().replace(/\s/g,“-”)); log(datatableObject[key]); var tableInstance=$(“#”+key.toLowerCase().replace(/\s/g,“-”+“-table”).DataTable({ 宾福:是的, B过滤器:是的, 栏目:[{ 标题:“标题”, 宽度:“30%”, 呈现:函数(数据、类型、行){ 返回“”; } }, { 标题:“课程”, 宽度:“30%”, 数据:“课程” }, { 标题:“年”, 宽度:“10%”, //数据:“年” 呈现:函数(数据、类型、行){ //年=年推送(行.年); 返回行。年份; } }, { 标题:“类别”, 宽度:“5%”, 数据:“类别” }, { 标题:“文件名”, 宽度:“5%”, 数据:“文件名” }, { 标题:“集团”, 宽度:“5%”, 数据:“集团” } ], columnDefs:[{ 可见:假, 目标:[3,4,5] }], 数据:datatableObject[键], 是的, dom:“”, initComplete:function(){ this.api().columns(2).every(function()函数){ var列=此;
->>>从列中获取数据时遇到问题要获取数据,只需使用

tableInstance.column(3.data()

或者,如果要将其放入数组中


tableInstance.column(3.data().toArray()

你想实现什么?你在initComplete中做了一些循环,但实际目的是什么?我正在构建一个按钮栏,其中包含在DataTable上所做选择的所有年份啊,是的,有点,他在使用
columns()
-注意复数形式。这个示例非常简单,但它返回第3列中的数据:$(document).ready(function(){var table=$('#example').DataTable({initComplete:function(){console.log(This.api().column(3).data().toArray());}});执行此操作时,我收到一个控制台错误。未捕获的TypeError:无法读取未定义的属性“column”您是否可以使用
this.api().column(3)…
?如果在
initComplete
中,请使用该属性,而不要使用
tableInstance
function getMyEdMaterials(result) {
        $.getJSON("/materials/assets/json/materials.json", function(data) {
            for (var key in data) {
                datatableObject[data[key].Group] = datatableObject[data[key].Group] || [];
                datatableObject[data[key].Group].push(data[key]);

                datatableObject["all"] = datatableObject["all"] || [];
                datatableObject["all"].push(data[key]);
            }

            for (var key in datatableObject) {
                console.log(key.toLowerCase().replace(/\s/g, "-"));
                console.log(datatableObject[key]);

                var tableInstance = $('#' + key.toLowerCase().replace(/\s/g, "-") + '-table').DataTable({
                    bInfo: true,
                    bFilter: true,
                    columns: [{
                            title: "Title",
                            width: "30%",
                            render: function(data, type, row) {
                                return "<a href=\"" + row.FileName + "\" target=\"_blank\">" + row.Title + "</a>";
                            }
                        },
                        {
                            title: "Course",
                            width: "30%",
                            data: "Course"
                        },
                        {
                            title: "Year",
                            width: "10%",
                            //data: "Year"
                            render: function(data, type, row) {
                                //year = year.push(row.Year);
                                return row.Year;
                            }
                        },
                        {
                            title: "Category",
                            width: "5%",
                            data: "Category"
                        },
                        {
                            title: "FileName",
                            width: "5%",
                            data: "FileName"
                        },
                        {
                            title: "Group",
                            width: "5%",
                            data: "Group"
                        }
                    ],
                    columnDefs: [{
                        visible: false,
                        targets: [3, 4, 5]
                    }],
                    data: datatableObject[key],
                    deferRender: true,
                    dom: "<'toolbar'frltip >",
                    initComplete: function() {
                        this.api().columns(2).every(function() {
                            var column = this;
->>> having trouble getting the data from the column <<<---
                            if ((column == undefined) || (column == null)) {
                                console.log("data is null / undefined");
                            } else {
                                column.data().unique().sort().each(function(d, j) {
                                    if ((d !== undefined) || (d !== null)) {
                                        console.log(d + " is the year");
                                    }
                                });
                            }
                        })
                    },
                    lengthMenu: [
                        [25, 50, 100, -1],
                        [25, 50, 100, "All"]
                    ],
                    order: [
                        [2, 'desc'],
                        [3, 'asc'],
                        [1, 'asc'],
                        [0, 'asc']
                    ],
                    orderMulti: true,
                    responsive: true,
                });
            }
        })
    };