var world = {"county": []};
world.county.push({name: "America", flag: "yes", countries: []});
world.county[0].countries.push({name: "Costa Rica", capital: "San Jose"});
这让我想到两件事:
关于问题2,我面临的问题是因为我不知道如何向根添加元素,让我们说我尝试了这个,但它不起作用:
var index = 0;
var word = {};
world.index.push({name: WA});
因此,通过这种方式,我可以添加迭代先前创建的数组的元素。
答案 0 :(得分:5)
首先,让我们解决这个问题:如果它是表示JavaScript对象的字符串,那么它只是JSON。你有一个对象文字。
现在,关于您的问题,您只需使用以下命令即可向对象添加元素:
object.newProperty = value;
至于你想要避免数组,只需使用数组。它们是正确使用的对象类型,您不应该使用其他任何东西来完成该任务。
答案 1 :(得分:0)
从Kolink的回答开始。那么,你在这里做的是什么:
var index = 0;
var world = {};
world.index.push({name: "WA"});
看起来您正在尝试向索引为0的world
添加属性。鉴于您正在尝试使用.push()
,您似乎希望该属性为数组,其中你会这样做:
world[index] = [];
world[index].push({name: "WA"});
鉴于world
作为一个空对象开始创建这个结构:
{ "0" : [ {name:"WA"} ] }
在一般意义上,要访问属性在变量中的对象属性,请使用[]
数组样式语法。所以:
world["somePropName"]
// does the same thing as
world.somePropName
// so with a variable:
var x = "somePropName";
world[x]