Object.keys()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Object.keys()
静态方法返回一个由给定对象自身的可枚举的字符串键属性名组成的数组。
尝试一下
语法
js
Object.keys(obj)
参数
obj
-
一个对象。
返回值
一个由给定对象自身可枚举的字符串键属性键组成的数组。
描述
Object.keys()
返回一个数组,其元素是字符串,对应于直接在对象上找到的可枚举的字符串键属性名。这与使用 for...in
循环迭代相同,只是 for...in
循环还会枚举原型链中的属性。Object.keys()
返回的数组顺序和与 for...in
循环提供的顺序相同。
如果你需要属性的值,请使用 Object.values()
。如果你同时需要属性的键和值,请使用 Object.entries()
。
示例
使用 Object.keys()
js
// 简单数组
const arr = ["a", "b", "c"];
console.log(Object.keys(arr)); // ['0', '1', '2']
// 类数组对象
const obj = { 0: "a", 1: "b", 2: "c" };
console.log(Object.keys(obj)); // ['0', '1', '2']
// 键的顺序随机的类数组对象
const anObj = { 100: "a", 2: "b", 7: "c" };
console.log(Object.keys(anObj)); // ['2', '7', '100']
// getFoo 是一个不可枚举的属性
const myObj = Object.create(
{},
{
getFoo: {
value() {
return this.foo;
},
},
},
);
myObj.foo = 1;
console.log(Object.keys(myObj)); // ['foo']
如果你想要所有以字符串为键的自有属性,包括不可枚举的属性,参见 Object.getOwnPropertyNames()
。
在基本类型中使用 Object.keys()
规范
Specification |
---|
ECMAScript Language Specification # sec-object.keys |
浏览器兼容性
BCD tables only load in the browser