我有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"]}]}


任何帮助,将不胜感激。

最佳答案

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

请参见示例。此处的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);

关于javascript - 在javascript数组中动态添加对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39052074/

10-09 15:10