我有一些关于汽车的数据,我正在尝试创建一个功能,我可以获取特定汽车的信息。我无法正确格式化数据列表。我通过JSLint运行它,它告诉我这是错的,但我不知道如何解决它。
var models = {
"2009":
{Jaguar: [model: "XF", id: "123"], [model: "XK", id: "456"], [model: "XJ", id: "789"]},
{Volvo: [model: "XC70", id: "223"], [model: "V50", id: "256"]},
"2010":
{Jaguar: [model: "XF", id: "323"], [model: "XK", id: "356"]},
{Volvo: [model: "XC70", id: "423"], [model: "V50", id: "456"]}
};
//**** Show an example model here
console.log(models.2010.Jaguar[0].model);
答案 0 :(得分:3)
你可以改成这样的东西:
var models = {
"2009":
{
Jaguar: [{model: "XF", id: "123"}, {model: "XK", id: "456"}, {model: "XJ", id: "789"}],
Volvo: [{model: "XC70", id: "223"}, {model: "V50", id: "256"}]
},
"2010":
{
Jaguar: [{model: "XF", id: "323"}, {model: "XK", id: "356"}],
Volvo: [{model: "XC70", id: "423"}, {model: "V50", id: "456"}]
}
};
//**** Show an example model here
console.log(models['2010'].Jaguar[0].model);
答案 1 :(得分:3)
models
是正确的对象(由"2009"
和"2010"
编制索引)。models["2009"]
应该是一个单独的对象;你不能拥有两个价值观。 {Jaguar:...}, {Volvo:...}
错误,需要{Jaguar: ..., Volvo:}
。Jaguar: ..., ..., ...
是错误的 - 每个索引只有一个值。在这种情况下,您希望此值为数组:Jaguar: [..., ..., ...]
。[model: "XF", id: "123"]
不正确;这应该是一个对象,{model: "XF", id: "123"}
。2010
不是有效的标识符,因此models.2010
是错误的。对于名称不是标识符的属性,必须使用括号表示法:models["2010"]
。答案 2 :(得分:2)
var models = {
"2009": {
Jaguar: [{model: "XF", id: "123"}, {model: "XK", id: "456"}, {model: "XJ", id: "789"}],
Volvo: [{model: "XC70", id: "223"}, {model: "V50", id: "256"}]
},
"2010": {
Jaguar: [{model: "XF", id: "323"}, {model: "XK", id: "356"}],
Volvo: [{model: "XC70", id: "423"}, {model: "V50", id: "456"}]
}
};
console.log(models[2010].Jaguar[0].model);
注意:models[2010]
因为无法使用点表示法访问它。