js遍历对象的的子对象
时间: 2024-09-20 16:06:20 浏览: 23
在JavaScript中,遍历对象及其子对象可以使用递归的方式。以下是两种常见的做法:
1. **使用`for...in`循环和`hasOwnProperty`检查**:
```javascript
function iterateObject(obj) {
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
console.log(`Key: ${key}, Value: ${obj[key]}`);
// 如果属性值还是对象,继续递归
if (typeof obj[key] === 'object' && obj[key] !== null) {
iterateObject(obj[key]);
}
}
}
}
iterateObject(yourObject);
```
这里会先访问对象本身的键值对,如果值是一个对象,就会递归进入这个子对象。
2. **使用`Object.keys()`配合递归**:
```javascript
function iterateDeep(obj, prefix = '') {
Object.keys(obj).forEach(key => {
console.log(`${prefix ? `${prefix}.${key}` : key}:`, obj[key]);
if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {
iterateDeep(obj[key], `${prefix ? `${prefix}.${key}.` : key}`);
}
});
}
iterateDeep(yourObject);
```
这种写法也是一样,首先打印出当前层级的键值对,然后检查是否还有更深层次的对象需要迭代。
阅读全文