首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取键/值javascript对象键的最佳方法

获取键/值javascript对象键的最佳方法
EN

Stack Overflow用户
提问于 2011-06-08 00:45:10
回答 14查看 655.3K关注 0票数 225

如果我有一个JS对象,比如:

代码语言:javascript
复制
var foo = { 'bar' : 'baz' }

如果我知道foo具有基本键/值结构,但不知道键的名称,那么获取它最简单的方法是什么?for ... in$.each()?我希望有更好的.

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2011-06-08 00:56:10

如果要获取所有密钥,请使用ECMAScript 5 introduced Object.keys。这只被较新的浏览器支持,但是MDC documentation提供了另一种实现(也使用for...in btw):

代码语言:javascript
复制
if(!Object.keys) Object.keys = function(o){
     if (o !== Object(o))
          throw new TypeError('Object.keys called on non-object');
     var ret=[],p;
     for(p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);
     return ret;
}

当然,如果同时需要键和值,那么for...in是唯一合理的解决方案。

票数 96
EN

Stack Overflow用户

发布于 2013-04-18 03:42:03

您可以使用for循环在对象内部进行迭代:

代码语言:javascript
复制
for(var i in foo){
  alert(i); // alerts key
  alert(foo[i]); //alerts key's value
}

代码语言:javascript
复制
Object.keys(foo)
  .forEach(function eachKey(key) { 
    alert(key); // alerts key 
    alert(foo[key]); // alerts value
  });
票数 230
EN

Stack Overflow用户

发布于 2015-02-23 17:26:59

您可以单独访问每个键,而无需迭代,如下所示:

代码语言:javascript
复制
var obj = { first: 'someVal', second: 'otherVal' };
alert(Object.keys(obj)[0]); // returns first
alert(Object.keys(obj)[1]); // returns second
票数 120
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6268679

复制
相关文章

相似问题

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