JavaScript keys() 方法
最后修改于 2025 年 4 月 4 日
在本文中,我们将展示如何使用 JavaScript 中的 keys 方法来处理对象键。
对象键概述
Object.keys 方法返回给定对象自身可枚举属性名称的数组。这些属性名称的返回顺序与手动循环遍历对象属性的顺序相同。
当您需要检查或操作对象的键时,此方法很有用。它只返回对象自身的属性,而不是通过原型链继承的属性。返回的数组可以与 forEach、map 或 filter 等数组方法一起使用。
keys 方法是 Object 构造函数的静态方法。它将一个对象作为其参数,并返回一个字符串数组,表示对象的可枚举属性。不可枚举的属性将被排除。
基本 keys() 示例
以下示例演示了 Object.keys 方法的基本用法。
const person = {
name: 'John',
age: 30,
occupation: 'Developer'
};
const keys = Object.keys(person);
console.log(keys);
我们创建一个具有三个属性的对象,并使用 Object.keys 来获取其键。该方法返回一个包含属性名称作为字符串的数组。键的顺序与其在对象中的插入顺序匹配。
$ node main.js [ 'name', 'age', 'occupation' ]
计算对象属性
Object.keys 方法可用于计算对象的属性。
const car = {
make: 'Toyota',
model: 'Camry',
year: 2020,
color: 'blue'
};
const propertyCount = Object.keys(car).length;
console.log(`The car object has ${propertyCount} properties`);
我们通过获取 Object.keys 返回的数组的长度来确定 car 对象中的属性数量。这是计算对象自身可枚举属性的常用模式。
$ node main.js The car object has 4 properties
迭代对象键
Object.keys 返回的数组可用于迭代对象的属性。
const book = {
title: 'JavaScript: The Good Parts',
author: 'Douglas Crockford',
pages: 176,
published: 2008
};
Object.keys(book).forEach(key => {
console.log(`${key}: ${book[key]}`);
});
我们使用 forEach 迭代 book 对象的键。对于每个键,我们记录属性名称及其对应的值。这种模式对于检查或处理对象的所有属性很有用。
$ node main.js title: JavaScript: The Good Parts author: Douglas Crockford pages: 176 published: 2008
检查对象是否为空
Object.keys 方法可以帮助确定一个对象是否具有任何自身属性。
const emptyObj = {};
const nonEmptyObj = { a: 1 };
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
console.log(isEmpty(emptyObj)); // true
console.log(isEmpty(nonEmptyObj)); // false
我们创建一个辅助函数,用于检查对象是否没有自身可枚举属性。这是通过验证 Object.keys 返回的数组的长度来完成的。请注意,这仅检查自身属性。
$ node main.js true false
将 keys() 用于类似数组的对象
Object.keys 方法可用于类似数组的对象,例如字符串。
const str = 'hello'; const strKeys = Object.keys(str); console.log(strKeys);
当与字符串一起使用时,Object.keys 返回一个字符串字符索引的数组。这有效是因为 JavaScript 中的字符串在被视为对象时,每个字符索引都有可枚举的属性。
$ node main.js [ '0', '1', '2', '3', '4' ]
来源
在本文中,我们演示了如何使用 Object.keys 方法来处理 JavaScript 中的对象属性。
作者
列出 所有 JS 数组函数。