一尘不染

如何列出JavaScript对象的属性?

javascript

说我这样创建一个对象:

var myObject =
        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};

检索属性名称列表的最佳方法是什么?即我想以一些变量“键”结束:

keys == ["ircEvent", "method", "regex"]

阅读 410

收藏
2020-04-25

共1个答案

一尘不染

在现代浏览器(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;
}

或者替换为vargetKeysObject.prototype.keys以允许您调用.keys()任何对象。扩展原型会产生一些副作用,我不建议您这样做。

2020-04-25