脚本网 > 网络编程 > JavaScript > JavaScript遍历对象并获取key和value的几种常见方法

JavaScript遍历对象并获取key和value的几种常见方法

admin JavaScript

在 JavaScript 中,有多种方法可以遍历对象的属性并获取每个属性的键(key)和值(value)。以下是几种常见的方法:

使用 for…in 循环

for…in 循环用于遍历对象的可枚举属性(包括原型链上的属性)。

const obj = { a: 1, b: 2, c: 3 };

for (const key in obj) {
  if (obj.hasOwnProperty(key)) { // 检查属性是否属于对象本身,而不是原型链上的
    const value = obj[key];
    console.log(key, value);
  }
}

使用 Object.keys() 方法

Object.keys() 方法返回一个数组,该数组包含对象自身的所有可枚举属性键。

const obj = { a: 1, b: 2, c: 3 };

Object.keys(obj).forEach(key => {
  const value = obj[key];
  console.log(key, value);
});

使用 Object.entries() 方法

Object.entries() 方法返回一个数组,数组中的每个元素都是一个包含键和值的数组。

const obj = { a: 1, b: 2, c: 3 };

Object.entries(obj).forEach(([key, value]) => {
  console.log(key, value);
});

使用 Object.getOwnPropertyNames() 方法

Object.getOwnPropertyNames() 方法返回一个数组,该数组包含对象自身的所有属性键(无论是否可枚举)。

const obj = { a: 1, b: 2, c: 3 };

Object.getOwnPropertyNames(obj).forEach(key => {
  const value = obj[key];
  console.log(key, value);
});

使用 Object.getOwnPropertySymbols() 方法

Object.getOwnPropertySymbols() 方法返回一个数组,该数组包含对象自身的所有 Symbol 类型的属性键。

const obj = { a: 1, b: 2, [Symbol('c')]: 3 };

Object.getOwnPropertySymbols(obj).forEach(sym => {
  const value = obj[sym];
  console.log(sym, value);
});

使用 Reflect.ownKeys() 方法

Reflect.ownKeys() 方法返回一个数组,该数组包含对象自身的所有属性键(包括不可枚举属性和 Symbol 类型的属性键)。

const obj = { a: 1, b: 2, [Symbol('c')]: 3 };

Reflect.ownKeys(obj).forEach(key => {
  const value = obj[key];
  console.log(key, value);
});

总结

  • 使用 for…in 循环可以遍历对象的所有可枚举属性,但需要配合 hasOwnProperty 方法来排除原型链上的属性。
  • Object.keys() 方法返回一个包含对象自身所有可枚举属性键的数组。
  • Object.entries() 方法返回一个包含对象自身所有可枚举属性键和值的数组。
  • Object.getOwnPropertyNames() 方法返回一个包含对象自身所有属性键(无论是否可枚举)的数组。
  • Object.getOwnPropertySymbols() 方法返回一个包含对象自身所有 Symbol 类型属性键的数组。
  • Reflect.ownKeys() 方法返回一个包含对象自身所有属性键(包括不可枚举属性和 Symbol 类型的属性键)的数组。

到此这篇关于JavaScript遍历对象并获取key和value的几种常见方法的文章就介绍到这了,更多相关JavaScript遍历对象并获取key和value内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!