Javascript中的多维数组(或类似的东西)
我正在工作的网站需要在一列中列出品牌(汽车制造商)列表,当单击品牌时,该特定品牌的车型将显示在其右侧的列中,然后将继续在右侧的div中列出该车型的可用汽车的详细信息。这段代码的大部分已经完成,但是我需要将我的数组从一个填充了对象文字的数组更改为一个数组中包含了对象文字的数组。下面是我一直在尝试编写的代码(只有数组,我可以处理它的其余部分),我只是不知道该怎么做才能使它正确 任何帮助都将不胜感激Javascript中的多维数组(或类似的东西),javascript,Javascript,我正在工作的网站需要在一列中列出品牌(汽车制造商)列表,当单击品牌时,该特定品牌的车型将显示在其右侧的列中,然后将继续在右侧的div中列出该车型的可用汽车的详细信息。这段代码的大部分已经完成,但是我需要将我的数组从一个填充了对象文字的数组更改为一个数组中包含了对象文字的数组。下面是我一直在尝试编写的代码(只有数组,我可以处理它的其余部分),我只是不知道该怎么做才能使它正确 任何帮助都将不胜感激 <div id="test"></div> <script type=
<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>
var inv=新数组();
inv[“阿斯顿马丁”]=新阵列(
[“DBS”]=新阵列(
{“年份”:2009;“价格:“$191400”},
{“年份”:2006年,“价格:“$160000”});
[“DB5”]=新数组(
{“年份”:2000,“价格:“$80500”},
{“年份”:1996年,“价格:“$100600”});
);
document.getElementById('test').innerHTML=inv[“ASTON MARTIN”][“DBS”][1]。价格;
在代码中,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"
]
};
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": []
}
};
非常感谢你。因此,在引用它时,可以使用document.getElementById('test').innerHTML=inv[“ASTON MARTIN”][“DBS”][1]等内容;将返回$160000的值,或者我需要省略包围“DBS”的括号吗?您的评论被截断,但您使用的是
inv[“ASTON MARTIN”][“DBS”][1]。price
应该可以工作。有没有办法让它通过for循环并将所有make拉入一个变量?我已经尝试了var makes=''for(var I=0;iUgh,对不起,已经晚了。我的意思是说模型。是否可以拉取所有模型(DBS,DB5)通过使用数字索引的for循环,还是它们只能被名称引用?您需要两个级别的循环,一个用于迭代make,另一个用于使用相同的for(…in…)构造迭代模型。