Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有命名和编号索引的Javascript多维对象_Javascript_Object_Multidimensional Array - Fatal编程技术网

具有命名和编号索引的Javascript多维对象

具有命名和编号索引的Javascript多维对象,javascript,object,multidimensional-array,Javascript,Object,Multidimensional Array,如何在javascript对象中存储此结构,尝试了许多方法,但找不到完整的解决方案 var Scheduling = new Object(); //first Milestone Scheduling[0]['MilestoneName'] = "Milestone One"; //Subtask List Scheduling[0]['SubTask'][0]['SubTaskName'] = "SubTask One"; Scheduling[0]['SubTas

如何在javascript对象中存储此结构,尝试了许多方法,但找不到完整的解决方案

var Scheduling = new Object();

//first Milestone
Scheduling[0]['MilestoneName'] = "Milestone One";
    //Subtask List
    Scheduling[0]['SubTask'][0]['SubTaskName'] = "SubTask One";
    Scheduling[0]['SubTask'][0]['CompletionPercent'] = "50";

    Scheduling[0]['SubTask'][1]['SubTaskName'] = "SubTask Two";
    Scheduling[0]['SubTask'][1]['CompletionPercent'] = "80";

//Second Milestone
Scheduling[1]['MilestoneName'] = "Milestone Two";

    Scheduling[1]['SubTask'][0]['SubTaskName'] = "SubTask One";
    Scheduling[1]['SubTask'][0]['CompletionPercent'] = "20";

    Scheduling[1]['SubTask'][1]['SubTaskName'] = "SubTask Two";
    Scheduling[1]['SubTask'][1]['CompletionPercent'] = "15";


console.log(JSON.stringify[x]);

在指定每个对象的属性之前,需要初始化它们。试着加上这个

Scheduling[0]={};
在指定每个嵌套对象和数组的属性之前,需要初始化它们

我将代码的第一部分更新如下:


var调度=新对象();
调度[0]={};
//第一个里程碑
调度[0]['MilestoneName']=“里程碑一”;
//子任务列表
正在计划[0]['SubTask']=[];
正在调度[0]['SubTask'][0]={};
调度[0]['SubTask'][0]['SubTaskName']=“子任务一”;
正在计划[0]['SubTask'][0]['CompletionPercent']=“50”;
正在调度[0]['SubTask'][1]={};
正在调度[0]['SubTask'][1]['SubTaskName']=“子任务二”;
正在计划[0]['SubTask'][1]['CompletionPercent']=“80”;

console.log(调度)在指定每个对象的属性之前,需要初始化它们。试着加上这个

Scheduling[0]={};
在指定每个嵌套对象和数组的属性之前,需要初始化它们

我将代码的第一部分更新如下:


var调度=新对象();
调度[0]={};
//第一个里程碑
调度[0]['MilestoneName']=“里程碑一”;
//子任务列表
正在计划[0]['SubTask']=[];
正在调度[0]['SubTask'][0]={};
调度[0]['SubTask'][0]['SubTaskName']=“子任务一”;
正在计划[0]['SubTask'][0]['CompletionPercent']=“50”;
正在调度[0]['SubTask'][1]={};
正在调度[0]['SubTask'][1]['SubTaskName']=“子任务二”;
正在计划[0]['SubTask'][1]['CompletionPercent']=“80”;

console.log(调度)您永远不会实例化要分配给的对象
MilestoneName
,只实例化它的父对象

例如,您可以尝试以下方法:
var Scheduling=new Array();//您只使用数字作为索引,请使用数组!
//第一个里程碑
调度推送({
MilestoneName:“里程碑一号”,
子任务:[
{
子任务名称:“子任务一”,
完成百分比:50,
},
{
子任务名称:“子任务2”,
完成百分比:80,
},
]
});
调度推送({
MilestoneName:“里程碑二”,
子任务:[
{
子任务名称:“子任务一”,
完成百分比:20,
},
{
子任务名称:“子任务2”,
完成百分比:15,
},
]
});

console.log('Object:%o,String:%s',Scheduling,JSON.stringify(Scheduling))
您永远不会实例化要分配给
MilestoneName
的对象,只有它的父对象

例如,您可以尝试以下方法:
var Scheduling=new Array();//您只使用数字作为索引,请使用数组!
//第一个里程碑
调度推送({
MilestoneName:“里程碑一号”,
子任务:[
{
子任务名称:“子任务一”,
完成百分比:50,
},
{
子任务名称:“子任务2”,
完成百分比:80,
},
]
});
调度推送({
MilestoneName:“里程碑二”,
子任务:[
{
子任务名称:“子任务一”,
完成百分比:20,
},
{
子任务名称:“子任务2”,
完成百分比:15,
},
]
});

console.log('Object:%o,String:%s',Scheduling,JSON.stringify(Scheduling))
您还可以像这样构造嵌套对象:

var Scheduling = {};

//first Milestone
Scheduling[0] = {
    'MilestoneName': "Milestone One",
    'SubTask': {
        0: {
            'SubTaskName': "SubTask One",
            'CompletionPercent': "20"
        },
        1: {
            // and so on ...
        }
    }
};
我还建议在处理增量索引时使用数组:

var Scheduling = []; // array instead

//first Milestone
Scheduling[0] = {
    // .. like before
    'SubTask': [  //here also an array
        { 
            // task one
        },
        {
            // task two
        }
    ],

也可以像这样构造嵌套对象:

var Scheduling = {};

//first Milestone
Scheduling[0] = {
    'MilestoneName': "Milestone One",
    'SubTask': {
        0: {
            'SubTaskName': "SubTask One",
            'CompletionPercent': "20"
        },
        1: {
            // and so on ...
        }
    }
};
我还建议在处理增量索引时使用数组:

var Scheduling = []; // array instead

//first Milestone
Scheduling[0] = {
    // .. like before
    'SubTask': [  //here also an array
        { 
            // task one
        },
        {
            // task two
        }
    ],
这是我的最终代码

 var Scheduling = new Object();

//first Milestone
Scheduling[0] = {};
Scheduling[0]['MilestoneName'] = "Milestone One";
//Subtask List
Scheduling[0]['SubTask'] = {};
Scheduling[0]['SubTask'][0] = {};
Scheduling[0]['SubTask'][0]['SubTaskName'] = "SubTask One";
Scheduling[0]['SubTask'][0]['CompletionPercent'] = "50";

Scheduling[0]['SubTask'][1] = {};
Scheduling[0]['SubTask'][1]['SubTaskName'] = "SubTask Two";
Scheduling[0]['SubTask'][1]['CompletionPercent'] = "80";

//Second Milestone
Scheduling[1] = {};
Scheduling[1]['MilestoneName'] = "Milestone One";
//Subtask List
Scheduling[1]['SubTask'] = {};
Scheduling[1]['SubTask'][0] = {};
Scheduling[1]['SubTask'][0]['SubTaskName'] = "SubTask One";
Scheduling[1]['SubTask'][0]['CompletionPercent'] = "50";

Scheduling[1]['SubTask'][1] = {};
Scheduling[1]['SubTask'][1]['SubTaskName'] = "SubTask Two";
Scheduling[1]['SubTask'][1]['CompletionPercent'] = "80";

alert(JSON.stringify(Scheduling));
这是我的最终代码

 var Scheduling = new Object();

//first Milestone
Scheduling[0] = {};
Scheduling[0]['MilestoneName'] = "Milestone One";
//Subtask List
Scheduling[0]['SubTask'] = {};
Scheduling[0]['SubTask'][0] = {};
Scheduling[0]['SubTask'][0]['SubTaskName'] = "SubTask One";
Scheduling[0]['SubTask'][0]['CompletionPercent'] = "50";

Scheduling[0]['SubTask'][1] = {};
Scheduling[0]['SubTask'][1]['SubTaskName'] = "SubTask Two";
Scheduling[0]['SubTask'][1]['CompletionPercent'] = "80";

//Second Milestone
Scheduling[1] = {};
Scheduling[1]['MilestoneName'] = "Milestone One";
//Subtask List
Scheduling[1]['SubTask'] = {};
Scheduling[1]['SubTask'][0] = {};
Scheduling[1]['SubTask'][0]['SubTaskName'] = "SubTask One";
Scheduling[1]['SubTask'][0]['CompletionPercent'] = "50";

Scheduling[1]['SubTask'][1] = {};
Scheduling[1]['SubTask'][1]['SubTaskName'] = "SubTask Two";
Scheduling[1]['SubTask'][1]['CompletionPercent'] = "80";

alert(JSON.stringify(Scheduling));

var调度=新对象()从外观上看应该是一个数组;差异可能很重要。
var Scheduling=newobject()从外观上看应该是一个数组;差异可能很重要。