Replace替换字符串,同时替换多个不同字段

666 阅读1分钟

后端返回树,字段匹配不了框架中树的组件怎么办?一个方法就全部搞定

需求

动态权限路由中,新增、修改、列表这些路由,用到了element-ui中的Tree,但是字段匹配不了 我其实就想自己改成自己想要的那种!!!

目标

resId => id

resName=>name

等等...

先看数据

"data": [{
    "resId": 1,
    "resName": "系统管理",
    "resUrl": "/System"
  }, {
    "resId": 200001,
    "resName": "菜单管理",
    "resUrl": "/system/menu"
  }]

解决方案

  • 方案一 forEach
  • 方案二 重点
var _data = JSON.parse(JSON.stringify(data).replace(/(resId|resName)/gi, function($0, $1) {
          return { 'resId': 'id', 'resName': 'name' }[$1]
        }))
console.log(_data)
// 结果
"data": [{
    "id": 1,
    "name": "系统管理",
    "resUrl": "/System"
  }, {
    "id": 200001,
    "name": "菜单管理",
    "resUrl": "/system/menu"
  }]

OK~ 完美