换个思路修改数据结构中的键名
Posted yunnex-xw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了换个思路修改数据结构中的键名相关的知识,希望对你有一定的参考价值。
在最近的一次开发中,用到了一个iview级联组件,不得不吐槽一下,这个组件对于数据格式要求比较严格,但整个项目的技术栈又选择了这个库,无奈只能改变返回的数据结构键名。
后端返回的数据结构:
[ { id: 1, name: "美容", childrenIndustryList: [ { id: 10, name: "护肤" } ]
}
]
组件所需的数据格式:
[ { value: 1, label: "美容", children: [ { value: 10, label: "护肤" } ] } ]
可看出数据格式是 一样的 ,但是要的属性名不同,那该怎么处理呢? 循环?? 数据量大的数据,循环很慢,并且是嵌套循环,更慢。
以下是解决思路: 转换为字符串,并且在replace操作时,只对字符串查找了一次。
export const changeIndustry = (attach) => { if (attach.length === 0) return attach; const jsonString = JSON.stringify(attach); const mo = { id: ‘value‘, name: ‘label‘, childIndustryList: ‘children‘ }; const rs = jsonString.replace(/id|name|childIndustryList/g,function(me) { return mo[me]; }); return JSON.parse(rs); }
以上是关于换个思路修改数据结构中的键名的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 中为 AVAsset 检索 AVMetadataItem 上的键名
使用 Django 时如何在 MongoDB 中使用不同的键名?
在循环中更改 OrderedDict 中的键名会导致 RuntimeError: OrderedDict 在迭代期间发生突变