【问题标题】:How to get first member of an object in javascript [duplicate]如何在javascript中获取对象的第一个成员[重复]
【发布时间】:2011-11-24 14:29:34
【问题描述】:

可能重复:
Access the first property of an object

我有一个这样的 javascript 对象:

var list = {
    item1: "a",
    item2: "b",
    item3: "c",
    item4: "d"
};

在 JS 中使用反射,我可以说 list["item1"] 以编程方式获取或设置每个成员,但我不想依赖成员的名称(对象可能被扩展)。所以我想得到这个对象的第一个成员

如果我编写以下代码,它将返回未定义。有人知道这是怎么做到的吗?

var first = list[0]; // this returns undefined

【问题讨论】:

  • 但是如果您更改初始化该对象的代码会怎样。当然最好是通过名称引用它,还是使用数组?
  • @Jack:我不是在寻找循环

标签: javascript reflection


【解决方案1】:
 for(var key in obj) break;
 // "key" is the first key here

【讨论】:

  • 这是一个非常聪明的解决方案。
【解决方案2】:
var list = {
    item1: "a",
    item2: "b",
    item3: "c",
    item4: "d"
};

等价于

var list = {
    item2: "b",
    item1: "a",
    item3: "c",
    item4: "d"
};

所以没有第一个元素。 如果你想要第一个元素,你应该使用数组。

【讨论】:

  • 没错,但stereofrog的回答给了我我想要的!我不会说“没有第一”,我会说“对象成员没有排序或索引”。先到先得。
  • @valipour: 那么为什么你的问题会说“我想得到这个对象的第一个成员” 如果你不关心你是否得到了定义的第一个项目由您订购?现在听起来您实际上是在要求一个成员,而不管您定义的顺序如何。
【解决方案3】:

尽管 JavaScript 的一些实现使用列表来创建对象,但它们应该是无序映射。

所以没有第一个。

【讨论】:

  • 没错,但stereofrog的回答给了我我想要的!我不会说“没有第一”,我会说“对象成员没有排序或索引”。先到先得。
【解决方案4】:

How do I loop through or enumerate a JavaScript object?

您可以使用以下方法获取所需的密钥。

for (var key in p) {
  if (p.hasOwnProperty(key)) {
    alert(key + " -> " + p[key]);
  }
}

如果要以索引方式访问元素,则需要使用数组。

【讨论】:

    猜你喜欢
    • 2011-03-18
    • 2019-07-25
    • 2019-11-26
    • 2023-03-20
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 2017-12-16
    相关资源
    最近更新 更多