需求
需要将如data(不知道会嵌套几层)中的数据结构中的‘children’改为‘child’,即变成data2的样子
let data = {
name: '360downloads',
children: [{ name: 'wpcache', children: [{ name: 'srvsetwp' }] }]
}
let data2 = {
name: '360downloads',
child: [{ name: 'wpcache', child: [{ name: 'srvsetwp' }] }]
}
思路:使用递归
递归函数如下:
// obj:要操作的对象;oldKey:对象要替换的老键名, newKey:对象即将变成的新键名
replaceKey(obj, oldKey, newKey) {
while (obj[oldKey]) {
obj[newKey] = obj[oldKey]
delete obj[oldKey]
obj[newKey].map(item => {
this.replaceKey(item, 'children', 'child') // 这里表示将'children'替换为 'child'
})
}
}
网友评论