var cover_or_contain = [
{1: "cover"},
{2: "contain"},
{3: "contain"},
{4: "contain"}
];
cover_or_contain[1]
这只会返回对象{2:"contain"}
,我该如何才能“包含”?我无法使用密钥映射cover_or_contain[var]
。
答案 0 :(得分:2)
考虑改变这个
var cover_or_contain = {
1: "cover",
2: "contain",
3: "contain",
4: "contain"
};
然后您可以通过其键号访问,例如cover_or_contain[1]
如果您仍想使用表示法,可以cover_or_contain[var-1][var]
编辑: 由于对象来自外部源,您可能希望首先将其转换为更方便的格式。
function convert(data) {
var ret = {};
for (var i = 0; i < data.length; i++) {
for (var k in data[i]) {
if (data[i].hasOwnProperty(k)) {
ret[k] = data[i][k];
}
}
}
return ret;
}
cover_or_contain = convert(cover_or_contain);
答案 1 :(得分:1)
无需转换为数组;只需使用Object.values()
:
> Object.values(cover_or_contain[1])[0]
'contain'
(Object.values()
返回一个数组,因此尾随[0]
。)
答案 2 :(得分:1)
使用 cover_or_contain [1] [2]
<script type="text/javascript">
var cover_or_contain = [
{1:"cover"},
{2: "contain"},
{3: "contain"},
{4: "contain"}
];
console.log(cover_or_contain[1][2]);
</script>