使用键和推送值创建空白二维数组

时间:2018-04-11 10:15:04

标签: javascript arrays

这是我的示例数组的示例。我想实现这样的数组,

        var myObj = { 
            PlannedStartDate: { value: '123', mandatory: 'yes' }, 
            PlannedEndDate: { value: '456', mandatory: 'no' }, 
            Days: { value: '123', mandatory: 'yes' } 
        };

OutPut-1 : -

enter image description here

我想用push()方法或任何其他进程实现上面的数组。 所以,为此,我尝试了这样,

var post_outage_array = [];
post_outage_array.push({"PlannedStartDate" : '123'});
console.log(post_outage_array);

但它给了我以下结果,

enter image description here

我甚至试过post_outage_array['0']['PlannedStartDate'] = '123';

所以,我的目标是首先声明空白的二维数组并用键推送值,并希望实现像上面的图像一样的输出。 (输出1)

编辑: - 根据gurvinder372的建议。

    var post_outage_array = {};
    post_outage_array["PlannedStartDate"]["value"] = '123';
    post_outage_array["PlannedStartDate"]["mandatory"] = 'yes';

当我试图以这种方式做到这一点。我收到了以下错误。

index.php:15 Uncaught TypeError: Cannot set property 'value' of undefined

2 个答案:

答案 0 :(得分:1)

看来你不是在数组之后,而是想要动态地将属性添加到对象中(可能在循环中?)。

这就是你要追求的吗?

// method 1

var post_outage = {};
post_outage["PlannedStartDate"] = {};
post_outage["PlannedStartDate"]["value"] = '123';
post_outage["PlannedStartDate"]["mandatory"] = 'yes';

console.log(post_outage);

// method 2
var post_outage = {};
post_outage["PlannedStartDate"] = {
  value: "123",
  mandatory: "yes"
};

console.log(post_outage);

答案 1 :(得分:1)

你不期望一个数组,而是期待一个由数组组成的对象。

实现这一点,定义了三个数组变量,如:

var Days             = [] ;
var plannedEndDate   = [] ;
var plannedStartDate = [] ;

然后使用push方法将值推送到每个值,然后:

var finalObject = {} ;
finalObject = {
        Days             : JSON.parse(JSON.stringify(Days            )) ,
        plannedEndDate   : JSON.parse(JSON.stringify(plannedEndDate  )) ,
        plannedStartDate : JSON.parse(JSON.stringify(plannedStartDate))  } ;