JS-API-在不改变值的情况下将 { 对象 } 中的中文键修改为英文键

232 阅读1分钟

如标题:

原来中文的格式:results:[{姓名:xxx,手机号:xxxx},{姓名:xxx,手机号:xxxx}]

这时后端说他不要这种数据,他要纯英文的:data:[{username:xxx,mobile:xxxx},{username:xxx,mobile:xxxx}]

实现它:

我先定义一个转换它的函数:

formateData (results) {
      // 我先定义一个常量保存它们的对应关系
      const mapInfo = {
        '姓名': 'username',
        '手机号': 'mobile'
      }
      // 然后使用map方法
      const data = results.map(obj => {
        // 这时形参obj代表的就是{姓名:xxx,手机号:xxxx}
        // 我希望得到新对象:key是英文的,value不变,于是声明变量准备接收
        const newObj = {}
        // 使用Object.keys()方法单独拿出对象中的键装进一个数组中去,在遍历数组拿到每个中文的键名
        Object.keys(obj).forEach(zhKey => {
          // 形参zhKey代表中文键;声明一个英文的键enKey
          // 因为前面声明的mapInfo中已经对应好了,所以直接拿中文的键名去mapInfo中去拿对应的值并赋值给enKey
          const enKey = mapInfo[zhKey]
          // 最后在newObj中添加一个键为enKey,值为老数组中的中文键的值
          newObj[enKey] = obj[zhKey]
          return newObj
        })
      })
      return data
    }

懵逼了吗?点个赞再走吧。