Javascript中的多维数组(或类似的东西)

时间:2013-02-14 07:40:24

标签: javascript

我正在处理的网站需要在一列中列出制造商列表(汽车制造商),当点击制作时,该特定品牌的模型会显示在其右侧的列中,然后将继续在右侧的div中列出该型号的可用汽车的详细信息。大部分代码都已完成,但是我需要将数组从填充了对象文字的数组更改为在数组中包含具有对象文字的数组。下面是我一直在努力解决的代码(仅限数组,我可以处理其余的代码),而我无法弄清楚要做些什么来实现它。

非常感谢任何帮助。

<div id="test"></div>

<script type="text/javascript">

var inv=new Array();
    inv["ASTON MARTIN"]=new Array(
        ["DBS"]=new Array(
            {"year":2009;"price":"$191,400"},
            {"year":2006,"price":"$160,000"});
        ["DB5"]=new Array(
            {"year":2000,"price":"$80,500"},
            {"year":1996,"price":"$100,600"});              
    );

document.getElementById('test').innerHTML = inv["ASTON MARTIN"]["DBS"][1].price;

</script>

2 个答案:

答案 0 :(得分:3)

在您的代码中,inv不应该是数组,而是对象。

var inv = {};

您不能将字符串用作数组索引,但在您的情况下使用对象看起来很好。

第二级也是如此。

var inv = {};
    inv["ASTON MARTIN"] = {
        "DBS": new Array(
            {"year":2009;"price":"$191,400"},
            {"year":2006,"price":"$160,000"}),
        "DB5": new Array(
            {"year":2000,"price":"$80,500"},
            {"year":1996,"price":"$100,600"})             
    };

甚至更简单:

var inv = {};
inv["ASTON MARTIN"] = {
    "DBS": [
        {"year":2009;"price":"$191,400"},
        {"year":2006,"price":"$160,000"}
    ],
    "DB5": [
        {"year":2000,"price":"$80,500"},
        {"year":1996,"price":"$100,600"
    ]
};

答案 1 :(得分:0)

Inv应该是对象,因为您希望按名称索引,而不是数字索引:

inv = {
    "ASTON MARTIN": {
        "DBS": [
            {"year":2009;"price":"$191,400"},
            {"year":2006,"price":"$160,000"}
               ],
        "DB5": [
            {"year":2000,"price":"$80,500"},
            {"year":1996,"price":"$100,600"});              
               ]
      },
   "CAR":{
          "Type": []
       }
   };