数据处理——批量替换js对象中的Key

573 阅读1分钟

有的时候从后端获取的对象的key,不是我们想要的效果。那么可以按照如下思路进行批量处理:

  1. 拿到原本对象的key,并最好是数组形式,方便后期处理。
  2. 创建一个替换规则rule,也拿到他的key,同时最好也是数组形式。
  3. 同时对两个数组进行遍历,当相同时,以rule中的value为key,以原本对象中的value为新的value,创建一个新的对象。这个新的对象就是我们所需要的。
const obj1={姓名:'zs',性别:'男'}
const rule={
    '姓名':'name',
    '性别':'gender'
}
function tranFn(obj,rule){
    const newObj={}
    // 拿到原本对象的key
    Object.keys(obj).forEach(item=>{
        // 拿到rule中的key
        Object.keys(rule).forEach(ele=>{
            // 当两个key中的某一项值相同时,创建一个新的键值对。
            item==ele&&(newObj[rule[ele]]=obj[item])
        })
    })
    console.log(newObj)
}

tranFn(obj1,rule)// { name: 'zs', gender: '男' }

使用Object.keys包裹一个对象,返回一个数组。

console.log(Object.keys(obj1))//[ '姓名', '性别' ]