如果要获取所有密钥,则可以使用ECMAScript5Object.keys
。只有较新的浏览器才支持此功能,但MDC文档提供了另一种实现方式(也使用for...in
btw):
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
是唯一合理的解决方案。