Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中定义多维对象_Javascript_Arrays_Object_Multidimensional Array - Fatal编程技术网

在Javascript中定义多维对象

在Javascript中定义多维对象,javascript,arrays,object,multidimensional-array,Javascript,Arrays,Object,Multidimensional Array,我有一些关于汽车的数据,并试图创建一个功能,在那里我可以获得特定汽车的信息。我似乎无法正确设置数据列表的格式。我通过JSLint运行它,它告诉我它是错误的,但我不知道如何修复它 var models = { "2009": {Jaguar: [model: "XF", id: "123"], [model: "XK", id: "456"], [model: "XJ", id: "789"]}, {Volvo: [model: "XC70", id: "223"], [m

我有一些关于汽车的数据,并试图创建一个功能,在那里我可以获得特定汽车的信息。我似乎无法正确设置数据列表的格式。我通过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);

您可以更改为以下内容:

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);
  • 模型
    是正确的对象(由
    “2009”
    “2010”
    索引)
  • 模型[“2009”]
    应为单个对象;不能有两个值<代码>{Jaguar:…},{Volvo:…}错误,需要
    {Jaguar:…,Volvo:}
  • 再往下钻,
    捷豹:…,…,…
    是错误的-每个索引只有一个值。在这种情况下,您希望此值是一个数组:
    Jaguar:[…,…,…]
  • 数组文字不能具有命名属性,因此
    [model:“XF”,id:“123”]
    不正确;这应该是一个对象,
    {model:“XF”,id:“123”}
  • 只能对标识符使用点表示法
    2010
    不是有效的标识符,因此
    models.2010
    是一个错误。对于名称不是标识符的属性,必须使用括号表示法:
    models[“2010”]

注意:
models[2010]
,因为它不能用点符号访问。

JSLint是否明确表示“它错了”?
[]
用于数组,数组只包含值列表
{}
用于包含命名属性及其值的对象。JavaScript中没有关联数组。您还需要使数组成为对象。是的@fauxserious,没有。但我认为这是一个公平的怀疑,我不认为有理由投反对票。对不起@fauxserious,我不想指控你。=)我这么说是因为我看不出任何人有理由否决这个问题。如果有原因的话,任何投反对票的人至少应该对此发表评论。
“2009”:{Jaguar:…}、{Volvo:…}
车型。2010
是语法错误。(你改正后我会投赞成票。)是的。等一下。使用此编辑器很难生成代码。需要更多
{
}
确保代码正确的好方法是:将其放入REPL。幸运的是,JS在浏览器中运行,JS控制台只需要三个键。或者您可以使用jsbin、jsfiddle、stackoverflow片段或节点交互式shell,并从中复制粘贴正确的解决方案。有时存在测试解决方案不可行的问题;这不是其中之一:他在做他的答案,我在做我的,纯粹的惯例,而你,当然,在做你的下一个否决票:D(p.D:1。我不复制其他用户的答案,2。答案编辑,有效!)。这两个答案之间间隔10分钟但我知道这种事情发生的时候我们只是想帮忙。这是更好的答案,在我看来,我投了更高的票。
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);