📅  最后修改于: 2023-12-03 14:54:15.705000             🧑  作者: Mango
循环对象键是指将对象的键和值一一对应进行循环遍历的方法。在 JavaScript 中,我们可以使用多种方式进行循环对象键的操作。
for...in
循环是最常用的一种循环对象键的方式。它可以很方便地遍历对象的所有键值,但要注意的是,它会遍历对象的原型链上的所有可枚举属性,因此需要使用 hasOwnProperty
方法来判断某个属性是否为对象自身的属性。
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
// 处理对象自身的属性
}
}
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.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
方法可以返回对象自身的所有属性,包括可枚举和不可枚举的属性,也包括 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.keys
、Object.getOwnPropertyNames
和 Reflect.ownKeys
方法则不需要。