ZetCode

JavaScript keys() 方法

最后修改于 2025 年 4 月 4 日

在本文中,我们将展示如何使用 JavaScript 中的 keys 方法来处理对象键。

对象键概述

Object.keys 方法返回给定对象自身可枚举属性名称的数组。这些属性名称的返回顺序与手动循环遍历对象属性的顺序相同。

当您需要检查或操作对象的键时,此方法很有用。它只返回对象自身的属性,而不是通过原型链继承的属性。返回的数组可以与 forEachmapfilter 等数组方法一起使用。

keys 方法是 Object 构造函数的静态方法。它将一个对象作为其参数,并返回一个字符串数组,表示对象的可枚举属性。不可枚举的属性将被排除。

基本 keys() 示例

以下示例演示了 Object.keys 方法的基本用法。

main.js
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 方法可用于计算对象的属性。

main.js
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 返回的数组可用于迭代对象的属性。

main.js
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 方法可以帮助确定一个对象是否具有任何自身属性。

main.js
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 方法可用于类似数组的对象,例如字符串。

main.js
const str = 'hello';
const strKeys = Object.keys(str);

console.log(strKeys);

当与字符串一起使用时,Object.keys 返回一个字符串字符索引的数组。这有效是因为 JavaScript 中的字符串在被视为对象时,每个字符索引都有可枚举的属性。

$ node main.js
[ '0', '1', '2', '3', '4' ]

来源

Object.keys() - 语言参考

在本文中,我们演示了如何使用 Object.keys 方法来处理 JavaScript 中的对象属性。

作者

我的名字是 Jan Bodnar,我是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。迄今为止,我撰写了 1,400 多篇文章和 8 本电子书。我拥有超过十年的编程教学经验。

列出 所有 JS 数组函数。