首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取关联数组键的列表

获取关联数组键的列表
EN

Stack Overflow用户
提问于 2009-02-17 22:20:54
回答 4查看 306.4K关注 0票数 268

我在JavaScript中有一个关联数组:

代码语言:javascript
复制
var dictionary = {
    "cats": [1,2,3,4,5],
    "dogs": [6,7,8,9,10]
};

我怎样才能得到这本字典的钥匙呢?也就是说,我想

代码语言:javascript
复制
var keys = ["cats", "dogs"];

只是为了纠正术语- JavaScript中没有‘关联数组’这样的东西-从技术上讲,这只是一个object,它是我们想要的对象键。

EN

回答 4

Stack Overflow用户

发布于 2009-02-17 22:26:17

试试这个:

代码语言:javascript
复制
var keys = [];
for (var key in dictionary) {
  if (dictionary.hasOwnProperty(key)) {
    keys.push(key);
  }
}

之所以需要hasOwnProperty,是因为可以将键插入到dictionary的原型对象中。但您通常不希望将这些键包含在列表中。

例如,如果您这样做:

代码语言:javascript
复制
Object.prototype.c = 3;
var dictionary = {a: 1, b: 2};

然后在dictionary上执行for...in循环,你会得到ab,但你也会得到c

票数 382
EN

Stack Overflow用户

发布于 2009-02-17 22:28:57

代码语言:javascript
复制
for (var key in dictionary) {
  // Do something with key
}

for..in statement

票数 184
EN

Stack Overflow用户

发布于 2010-06-15 10:34:43

只有一个简短的说明。如果您使用库(jQueryPrototype等),请谨慎使用for..in,因为它们中的大多数都会向创建的对象(包括字典)添加方法。

这意味着当你遍历它们时,方法名将以键的形式出现。如果您使用的是库,请查看文档并查找可枚举部分,在那里您将找到用于对象迭代的正确方法。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/558981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档