js一个多层嵌套对象往另一个多层嵌套对象添加没有的属性
时间: 2024-05-02 14:16:55 浏览: 233
你可以使用递归函数来遍历每个对象的属性,如果属性不存在,则添加该新属性。以下是一个示例代码:
```javascript
function addObjectProperties(sourceObj, targetObj) {
for (let prop in sourceObj) {
if (sourceObj.hasOwnProperty(prop)) {
if (typeof sourceObj[prop] === 'object') {
// 如果当前属性是一个对象,则递归调用该函数
addObjectProperties(sourceObj[prop], targetObj[prop]);
} else if (!targetObj.hasOwnProperty(prop)) {
// 如果目标对象不存在该属性,则添加该属性
targetObj[prop] = sourceObj[prop];
}
}
}
}
```
假设我们有以下两个多层嵌套对象:
```javascript
const sourceObj = {
prop1: 'value1',
prop2: {
nestedProp1: 'nestedValue1',
nestedProp2: {
deeplyNestedProp1: 'deeplyNestedValue1'
}
}
}
const targetObj = {
prop1: 'value1',
prop2: {
nestedProp1: 'nestedValue1',
nestedProp2: {
deeplyNestedProp2: 'deeplyNestedValue2'
}
}
}
```
我们可以使用以下代码来将 `sourceObj` 的属性添加到 `targetObj`:
```javascript
addObjectProperties(sourceObj, targetObj);
console.log(targetObj);
```
输出结果如下:
```javascript
{
prop1: 'value1',
prop2: {
nestedProp1: 'nestedValue1',
nestedProp2: {
deeplyNestedProp2: 'deeplyNestedValue2',
deeplyNestedProp1: 'deeplyNestedValue1'
}
}
}
```
可以看到,`sourceObj` 中的属性已经成功添加到了 `targetObj` 中。
阅读全文