//递归遍历改名
export const renameObjectProperties = (obj, oldName, newName) => {
// 如果是数组,则使用forEach进行遍历,为了保持索引不变
if (Array.isArray(obj)) {
obj.forEach((item, index) => {
// 如果item是对象或数组,则递归调用自身
if (typeof item === 'object' && item !== null) {
renameObjectProperties(item, oldName, newName);
} else if (item === oldName) {
// 如果item与旧属性名相同,则替换为新的属性名
obj[index] = newName;
}
});
} else if (typeof obj === 'object' && obj !== null) {
// 如果是对象,则使用for...in遍历
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
if (key === oldName) {
// 如果当前属性名与旧属性名相同,则替换为新的属性名
obj[newName] = obj[oldName];
delete obj[oldName];
} else if (typeof obj[key] === 'object' && obj[key] !== null) {
// 如果当前属性是对象,则递归调用自身
renameObjectProperties(obj[key], oldName, newName);
}
}
}
}
// 返回修改后的对象或数组
return obj;
}
11-12
166
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
02-13
3478
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
04-02
817
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
03-08
154
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-08
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交