获取JavaScript对象的所有键

tis*_*hma 18 javascript arrays jquery javascript-objects

我想知道是否有一种快速方法可以将关联数组的键提取到数组中,或者使用JavaScript提取逗号分隔列表(jQuery没问题).

options = {key1: "value1", key2: "value2"};
Run Code Online (Sandbox Code Playgroud)

结果应该是数组:

["key1", "key2"]
Run Code Online (Sandbox Code Playgroud)

或只是一个字符串:

"key1, key2"
Run Code Online (Sandbox Code Playgroud)

Nic*_*ver 26

您可以通过for循环轻松获取它们的数组,例如:

var keys = [];
for(var key in options) {
  if(options.hasOwnProperty(key)) { //to be safe
    keys.push(key);
  }
}
Run Code Online (Sandbox Code Playgroud)

然后使用keys你想要的方式,例如:

var keyString = keys.join(", ");
Run Code Online (Sandbox Code Playgroud)

你可以在这里测试一下.该.hasOwnProperty()检查是为了安全起见,在与物体原型和这种混乱的情况下任何人.


小智 24

options = {key1: "value1", key2: "value2"};
keys = Object.keys(options);
Run Code Online (Sandbox Code Playgroud)

  • IE8及以下版本现在占全球浏览器的1%左右. (3认同)

Ege*_*can 5

一种jQuery方式:

var keys = [];
options = {key1: "value1", key2: "value2"};
$.each(options, function(key, value) { keys.push(key) })
console.log(keys)
Run Code Online (Sandbox Code Playgroud)