js如何去除对象中的对象
时间: 2023-11-16 11:07:18 浏览: 23
可以使用递归的方式遍历对象,然后判断每个属性的值是否为对象,如果是对象则递归遍历该对象,直到找到非对象属性为止。在遍历过程中,将所有非对象属性保存在一个新的对象中,最终返回该新对象即可。下面是一个简单的示例代码:
```javascript
function removeNestedObjects(obj) {
const newObj = {};
for (let key in obj) {
if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
newObj[key] = removeNestedObjects(obj[key]);
} else if (typeof obj[key] !== 'object') {
newObj[key] = obj[key];
}
}
return newObj;
}
const obj = {
name: 'Alice',
age: 25,
address: {
city: 'Beijing',
country: 'China'
}
};
const newObj = removeNestedObjects(obj);
console.log(newObj); // { name: 'Alice', age: 25, address: { } }
```
在上面的代码中,`removeNestedObjects` 函数接收一个对象作为参数,然后遍历对象的每个属性,如果该属性的值是一个对象,则递归调用 `removeNestedObjects` 函数,并将返回的新对象作为该属性的值保存在新对象中。如果该属性的值不是对象,则直接保存在新对象中。最终返回新对象。