我知道在 JavaScript 中,objects作为哈希值的两倍,但我一直无法找到内置函数来获取密钥:
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.
On the Mozilla 网站还有一个向后兼容的片段:
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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)