在javascript数组中动态添加对象

web*_*erz 2 javascript arrays json javascript-objects

我有json:

var obj = '{"Form":[],"Provider":[]}';
Run Code Online (Sandbox Code Playgroud)

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

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

但这将 pName 添加为变量名称而不是Tester 的变量值,我尝试使用 +pName+ 也不起作用。

返回:

{"Form":[],"Provider":[{"pName":["Testing"]}]}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

Sur*_*yan 5

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

请参见示例。这里的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);
Run Code Online (Sandbox Code Playgroud)