javascript - 如何找到对象的键?

标签 javascript object key

我知道在 JavaScript 中,objects 兼作哈希,但我一直无法找到一个内置函数来获取 key :

var h = {a:'b', c:'d'};

我想要类似的东西

var k = h.keys() ; // k = ['a', 'c'];

自己编写一个函数来迭代项目并将键添加到我返回的数组中很简单,但是有没有一种标准的更简洁的方法来做到这一点?

我一直觉得它一定是一个简单的内置函数,我错过了但我找不到它!

最佳答案

现代 JavaScript (ECMAScript 5) 中有一个函数叫做 Object.keys执行此操作:

var obj = { "a" : 1, "b" : 2, "c" : 3};
alert(Object.keys(obj)); // will output ["a", "b", "c"]

兼容性详情可见here .

Mozilla site还有一个向后兼容的片段:

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;
}

关于javascript - 如何找到对象的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912/

相关文章:

javascript - Array.push() 与对象

linux - sshd 上的算法密码

php - 如何用数组中的值交换键?

javascript - 检查当前主机是否可以访问 URL

javascript - 从查询字符串创建 CSS 规则

javascript - 将变量从 link_to 传递到 Rails 中的模态

javascript - Lodash 比较/合并对象与数组

javascript - JavaScript 中的返回函数

facebook - FB 开发 - 如何通过 "key"搜索 facebook 城市

javascript - 如何停止表单提交?