在 JavaScript 中,for...of 循环无法直接用于对象,因为它只能遍历可迭代的对象(如数组、字符串、Map、Set等)。要遍历对象的键,通常可以使用 for...in 或者结合 Object.keys()、Object.entries() 等方法。
下面是几种常见的方法来遍历对象并获取键:
1. 使用 for...in
const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
if (obj.hasOwnProperty(key)) { // 确保是对象自身的属性
console.log(key); // 输出键
console.log(obj[key]); // 输出值
}
}
2. 使用 Object.keys()
Object.keys() 返回一个包含对象所有可枚举属性的数组,你可以使用 for...of 遍历这个数组:
const obj = { a: 1, b: 2, c: 3 };
for (const key of Object.keys(obj)) {
console.log(key); // 输出键
console.log(obj[key]); // 输出值
}
3. 使用 Object.entries()
Object.entries() 返回一个包含对象自身所有可枚举属性的键值对数组,你可以使用 for...of 遍历这个数组:
const obj = { a: 1, b: 2, c: 3 };
for (const [key, value] of Object.entries(obj)) {
console.log(key); // 输出键
console.log(value); // 输出值
}
总结
- for...in: 用于遍历对象的键,但需要使用 hasOwnProperty 检查是否是对象自身的属性。
- Object.keys(): 返回对象的键数组,适合与 for...of 结合使用。
- Object.entries(): 返回键值对数组,适合与 for...of 结合使用,可以同时获取键和值。
根据你的需求选择合适的方法来遍历对象并获取键。