繁体   English   中英

JavaScript中的多维数组

[英]Multidimensional arrays in javascript

我已经搜索并尝试过,但是无法解决任何问题。

以下代码创建一个数组“ ary_task_group”。 我需要第二个数组“ ary_task”位于ary_task_group的键下。 这不应该是一件难事,但在javascript中,这似乎有点困难。

$('.task-group-text').each(function(key, value) {
    var taskGroup = $(this);
    var taskGroupName = taskGroup.html();
    var grouped = taskGroupName.toLowerCase().replace(/\s/g,'');
    ary_task_group[key]=taskGroupName;

    //get the children for this group.
    $(".group-container-"+grouped).find(".task-expand").each(function(task_key, task_value){ ary_task[task_key] = $(this).html()  });
    console.log(ary_task);
});

编辑

尝试创建一个对象:

var obj = {};
obj.group = [];
obj.group = taskGroupName;
obj.group_tasks = [];
$(".group-container-"+grouped).find(".task-expand").each(
    function(task_key, task_value){ 
    //ary_task[task_key] = $(this).html()
    obj.group_tasks.push[{task_key: $(this).html()}]  
});

这仅导致对象中的最后一项。 我知道我做错了这部分。

是的,创建对象显然是要走的路。 这是我最终得到的代码。

$('.task-group-text').each(function(key, value) {
    var taskGroup = $(this);
    var taskGroupName = taskGroup.html();
    var grouped = taskGroupName.toLowerCase().replace(/\s/g,'');
    ary_task_group[key]=taskGroupName;

    //get the children for this group.
    var ary_task = [];
    $(".group-container-"+grouped).find(".task-expand").each(
        function(task_key, task_value){ 
            ary_task.push($(this).html())  
        }
    );
    obj[taskGroupName] = {
        ary_task
    };

});

结果是:

Array
    (
        [Group 2] => Array
            (
                [ary_task] => Array
                    (
                        [0] => Test task group 2
                    )

            )

        [Group 777] => Array
            (
                [ary_task] => Array
                    (
                        [0] => Funny Face
                        [1] => Test Task group 1
                    )

            )

    )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM