如果我有一个JS对象,例如:
var foo = { 'bar' : 'baz' }
如果我知道foo键具有基本的键/值结构,但不知道键的名称,那么最简单的方法是什么?for ... in?$.each()?我希望有更好的…
foo
for ... in
$.each()
如果要获取所有密钥,则可以使用ECMAScript5Object.keys。只有较新的浏览器才支持此功能,但MDC文档提供了另一种实现方式(也使用for...inbtw):
Object.keys
for...in
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是唯一合理的解决方案。