js 将多层级对象合并为一级
时间: 2024-05-07 09:16:04 浏览: 8
可以使用递归函数来将多层级对象合并为一级。具体步骤如下:
1. 定义一个新的空对象,作为合并后的结果。
2. 遍历原始对象的每一个属性。
3. 如果该属性的值是一个对象,则递归调用函数,将其合并为一级,并将结果合并到新的对象中。
4. 如果该属性的值不是一个对象,则直接将其合并到新的对象中。
5. 返回合并后的新对象。
示例代码:
```javascript
function flattenObject(obj) {
let result = {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object' && obj[key] !== null) {
let subObj = flattenObject(obj[key]);
for (let subKey in subObj) {
if (subObj.hasOwnProperty(subKey)) {
result[key + '.' + subKey] = subObj[subKey];
}
}
} else {
result[key] = obj[key];
}
}
}
return result;
}
```
使用示例:
```javascript
const obj = {
a: {
b: {
c: 'hello',
d: 'world'
},
e: 'javascript'
},
f: 123
};
const result = flattenObject(obj);
console.log(result); // { 'a.b.c': 'hello', 'a.b.d': 'world', 'a.e': 'javascript', f: 123 }
```
在这个示例中,原始对象 `obj` 包含了多层级的属性。通过调用 `flattenObject` 函数,将其合并为一级。合并后的结果为一个新的对象,其中包含了原始对象的所有属性,并且属性名以 `.` 分隔,表示其层级关系。