javascript - JS : How to make logic (using loops) to insert data into this table?

标签 javascript arrays for-loop yui

Fiddle here 。但它没有显示任何内容。我不明白为什么。

<小时/>

二维数组的结构类似于:

数组 ( [0] => 数组 ( [0] => 姓名 1 => 年龄 [2] => CGPA ) 1 => 数组 ( [0] => Alex 1 => 23 [2] => 2.5 ) [2] => 数组 ( [0] => 鲍勃 1 => 24 [2] => 3 ) [3] => 数组 ( [0] => 迈克 1 = > 22 [2] => 3.9 ) )

我们需要将该数组中的数据加载到YUI 模块中创建的数据表中。

因此,根据我从努力中获得的理解,我认为我们不能在 YUI 模块 block 内编写循环或代码。(如果我错了请告诉我)否则很容易,我可以简单地使用 for 循环。

我仍然知道我需要在这里使用 for 循环。但我不知道如何创建逻辑,因为我无法将代码插入到 YUI 模块的代码块中。 代码如下。

为了便于理解,我通过引用给定数组的索引插入了数据。它工作得很好,但我们不能使用像 0 1 2 3 等索引,因为我们不知道 2D 数组 和 1D 数组的长度是多少它包含的数组。 有人可以帮我解决这个问题吗?

M.mod_quiz.init_dataTable = function(Y, params) {

    var $rowArray= params.key1;

    alert($rowArray.length);

    /*for (i=0; i<$rowArray.length; i++) {
        for (j=0; j<$rowArray[0].length; j++) {

        }
    }*/

    YUI().use("datatable-sort", function(Y) {
                    var cols = [
                        /*for (i=0; i<$rowArray.length; i++) {
                            {key:"Column "+i , label: $rowArray[0][i] , sortable=true}
                        }*/
                        {key:"Company", label:$rowArray[0][0], sortable:true},
                        {key:"Phone", label:$rowArray[0][1], sortable:true},
                        {key:"Contact", label:$rowArray[0][2], sortable:true}
                    ],
                    data = [
                        {Company:$rowArray[1][0], Phone:$rowArray[1][1], Contact:$rowArray[1][2]},
                        {Company:$rowArray[2][0], Phone:$rowArray[2][1], Contact:$rowArray[2][2]},
                        {Company:$rowArray[3][0], Phone:$rowArray[3][1], Contact:$rowArray[3][2]}
                    ],
                    table = new Y.DataTable({
                        columns: cols,
                        data   : data,
                        summary: "Contacts list",
                        caption: "Table with simple column sorting"
                    }).render(params.key2);
                    });
};

最佳答案

看起来您想要创建一个 DataTable 对象,但您的要求是构造函数的命名 columns 属性必须是动态的,而不是静态的。对吗?

仅仅因为大多数 YUI 示例都显示 columns 属性是一个内联数组,并不意味着必须这样做。您可以动态构建它...

YUI().use("datatable-sort", function(Y) {

            // Build the column definitions dynamically, based on the names in $rowArray[0].
            var cols = [];
            for (i=0; i<$rowArray[0].length; i++) {
                cols.push( { key:$rowArray[0][i], label:$rowArray[0][i], sortable:true } );
            }

            var data = [
                ...

至于您提供的 JSFiddle(谢谢!),存在对姓名/年龄/CGPA 和公司/电话/联系人的引用的混淆。你需要解决这个问题。即使在那之后,JSFiddle 也会出现异常,但我已经没时间了。您可以使用浏览器的内置调试器来捕获异常并进行调试。

关于javascript - JS : How to make logic (using loops) to insert data into this table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25254941/

相关文章:

javascript - 使用 list v3 将谷歌分析添加到 chrome 扩展中

c# - foreach block 内错误的堆栈跟踪行号

javascript - 如何在 FOR 循环中创建暂停或延迟?

arrays - iOS 如何找到浮点/整数值数组的值之间的最小差异

javascript - Node.js 数组到带有换行符的文本

java - Java 中是否可以仅在一个输出中显示 for 循环的结果?

javascript - Ember模型生命周期,并恢复到原始状态

javascript - 激活弹出窗口(HTML、PHP、Javascript/Jquery)

javascript - 为什么此声音会在webaudio api中不断重新触发?

c - c程序的程序输出