我有一个像这样的javascript对象:
var list = {
item1: "a",
item2: "b",
item3: "c",
item4: "d"
};
在JS中使用反射,我可以说list [“item1”]以编程方式获取或设置每个成员,但我不想依赖于成员的名称(对象可能被扩展)。所以我想获得此对象的第一个成员。
如果我编写以下代码,则返回undefined。有谁知道如何做到这一点?
var first = list[0]; // this returns undefined
答案 0 :(得分:39)
for(var key in obj) break;
// "key" is the first key here
答案 1 :(得分:10)
var list = {
item1: "a",
item2: "b",
item3: "c",
item4: "d"
};
相当于
var list = {
item2: "b",
item1: "a",
item3: "c",
item4: "d"
};
所以没有第一个元素。 如果你想要第一个元素,你应该使用数组。
答案 2 :(得分:2)
尽管JavaScript的某些实现使用列表来创建对象,但它们应该是无序映射。
所以没有第一个。
答案 3 :(得分:0)
How do I loop through or enumerate a JavaScript object?
您可以使用以下方法获取所需的密钥。
for (var key in p) {
if (p.hasOwnProperty(key)) {
alert(key + " -> " + p[key]);
}
}
如果要以索引方式访问元素,则需要使用数组。