一尘不染

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

javascript

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

var foo = { 'bar' : 'baz' }

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


阅读 351

收藏
2020-05-01

共1个答案

一尘不染

如果要获取所有密钥,则可以使用ECMAScript5Object.keys。只有较新的浏览器才支持此功能,但MDC文档提供了另一种实现方式(也使用for...inbtw):

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是唯一合理的解决方案。

2020-05-01