📜  循环对象javascript中的键(1)

📅  最后修改于: 2023-12-03 14:54:15.705000             🧑  作者: Mango

循环对象 JavaScript 中的键

什么是循环对象键?

循环对象键是指将对象的键和值一一对应进行循环遍历的方法。在 JavaScript 中,我们可以使用多种方式进行循环对象键的操作。

for...in 循环

for...in 循环是最常用的一种循环对象键的方式。它可以很方便地遍历对象的所有键值,但要注意的是,它会遍历对象的原型链上的所有可枚举属性,因此需要使用 hasOwnProperty 方法来判断某个属性是否为对象自身的属性。

for (let key in obj) {
  if (obj.hasOwnProperty(key)) {
    // 处理对象自身的属性
  }
}
Object.keys

Object.keys 方法可以返回对象自身的所有可枚举属性组成的数组,可以很方便地遍历对象的键值。与 for...in 循环不同,Object.keys 只会返回对象自身的可枚举属性,不会遍历原型链。

const keys = Object.keys(obj);
for (let i = 0; i < keys.length; i++) {
  const key = keys[i];
  const value = obj[key];
  // 处理键值
}
Object.getOwnPropertyNames

Object.getOwnPropertyNames 方法可以返回对象自身的所有属性,无论是否可枚举。与 Object.keys 方法一样,Object.getOwnPropertyNames 不会遍历原型链上的属性。

const keys = Object.getOwnPropertyNames(obj);
for (let i = 0; i < keys.length; i++) {
  const key = keys[i];
  const value = obj[key];
  // 处理键值
}
Reflect.ownKeys

Reflect.ownKeys 方法可以返回对象自身的所有属性,包括可枚举和不可枚举的属性,也包括 Symbol 类型的属性。与前两种方法不同,Reflect.ownKeys 会遍历原型链上的属性。

const keys = Reflect.ownKeys(obj);
for (let i = 0; i < keys.length; i++) {
  const key = keys[i];
  const value = obj[key];
  // 处理键值
}
总结

循环对象键是一种非常常见的操作,JavaScript 中有多种遍历对象键值的方式,需要根据实际情况选择合适的方式来实现。在使用 for...in 循环时,要注意过滤掉原型链上的属性,而 Object.keysObject.getOwnPropertyNamesReflect.ownKeys 方法则不需要。