【发布时间】:2012-05-23 10:18:17
【问题描述】:
我有这个对象:
var navArray = {
'#item1' : 0,
'#item2' : 1,
'#item3' : 2,
'#item4' : 3,
'#item5' : 4,
'#item6' : 5
}
下面代码中的 ident var 是一个数字,我需要找出它对应于数组中的哪个属性...所以如果 ident 为 1,我想找回 #item2 ..
我该怎么做?
var navArray = {
'#item1' : 0,
'#item2' : 1,
'#item3' : 2,
'#item4' : 3,
'#item5' : 4,
'#item6' : 5
}
if(typeof(ident) === "number") {
for(i in navArray) {
}
}
【问题讨论】:
-
navArray[i] 应该这样做
-
你的
navArray根本不是一个数组。使用navArray = ['#item1', '#item2', '#item3', ...]有什么问题吗?然后你就可以直接索引到它:navArray[ident]。 -
@K Ivanov:您的解决方案假定数据已排序。 elduderino,这个对象是否总是相同的,所以排序是一个安全的假设?
-
重要的是要注意这个例子不是一个数组,而是一个对象/映射/关联数组(无论你想怎么称呼它)——你可以通过{} 语法 - 数组使用 []。您的变量名称令人困惑。如果您想迭代数组,请参阅stackoverflow.com/a/3010848/251185
标签: javascript