说我这样创建一个对象:
var myObject = {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};
检索属性名称列表的最佳方法是什么?即我想以一些变量“键”结束:
keys == ["ircEvent", "method", "regex"]
在现代浏览器(IE9 +,FF4 +,Chrome5 +,Opera12 +,Safari5+)中,您可以使用内置的Object.keys方法:
var keys = Object.keys(myObject);
上面有完整的polyfill,但简化的版本是:
var getKeys = function(obj){ var keys = []; for(var key in obj){ keys.push(key); } return keys; }
或者替换为vargetKeys,Object.prototype.keys以允许您调用.keys()任何对象。扩展原型会产生一些副作用,我不建议您这样做。
vargetKeys
Object.prototype.keys
.keys()