js多层数组对象修改key
时间: 2023-11-25 10:05:46 浏览: 46
可以使用递归来修改多层嵌套的对象中的 key。以下是一个示例代码:
```javascript
function modifyKey(obj, oldKey, newKey) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
if (key === oldKey) {
obj[newKey] = obj[key];
delete obj[key];
} else if (typeof obj[key] === 'object') {
modifyKey(obj[key], oldKey, newKey);
}
}
}
return obj;
}
// 示例
var obj = {
a: {
b: {
c: 1,
d: 2
}
},
e: {
f: 3,
g: {
h: 4
}
}
};
obj = modifyKey(obj, 'c', 'newC');
console.log(obj);
// 输出:{ a: { b: { newC: 1, d: 2 } }, e: { f: 3, g: { h: 4 } } }
```
上述代码中的 `modifyKey` 函数接受三个参数,分别是需要修改的对象、旧的 key 和新的 key。函数会遍历对象中的每一个属性,如果当前属性的 key 等于旧的 key,则将此属性的 key 修改为新的 key;如果当前属性是对象,则递归调用 `modifyKey` 函数,继续遍历子对象;否则跳过。最后返回修改后的对象。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)