获取对象键数组

2022-08-29 23:12:58

我想将JavaScript对象的键作为数组获取,无论是在jQuery还是纯JavaScript中。

还有比这更冗长的方式吗?

var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
    keys.push(key);
}

答案 1

使用 Object.keys

var foo = {
  'alpha': 'puffin',
  'beta': 'beagle'
};

var keys = Object.keys(foo);
console.log(keys) // ['alpha', 'beta'] 
// (or maybe some other order, keys are unordered).

这是 ES5 的一项功能。这意味着它适用于所有现代浏览器,但不适用于旧版浏览器

ES5-shim 具有可以窃取的 Object.keys 的实现


答案 2

你可以使用jQuery的$.map

var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' },
keys = $.map(foo, function(v, i){
  return i;
});