在javascript数组中动态添加对象

时间:2016-08-20 08:24:13

标签: javascript arrays json javascript-objects

我有json:

var obj = '{"Form":[],"Provider":[]}';

我用可变值推送数据来制作动态对象:

var pName = 'Tester';
var data = {
    pName :["testing"]
};
console.log(obj['Provider'].push(data));

但是,这会将pName添加为变量名,但不是 Tester 的变量值,我尝试使用+ pName +也无效。

返回:

{"Form":[],"Provider":[{"pName":["Testing"]}]}

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您必须在属性名称附近使用[]语法。它将评估[]中的表达式并返回值。

请参阅示例。data's属性的名称为'Tester'



var obj = {"Form":[],"Provider":[]};

var pName = 'Tester';
var data = {
    [pName] :["testing"]
};

console.log(data.pName); // undefined
console.log(data.Tester); // OK

obj['Provider'].push(data);

console.log(obj);