美文网首页
object对象替换键名

object对象替换键名

作者: 前端青音 | 来源:发表于2019-08-22 15:56 被阅读0次

需求

需要将如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'
        })
      }
    }

相关文章

网友评论

      本文标题:object对象替换键名

      本文链接:https://www.haomeiwen.com/subject/lxgnsctx.html