将对象数组中的每个对象的属性名,从中文改成英文

211 阅读1分钟

{'姓名':'小张', '手机号': '13712345678'} => [ {'username':'小张','mobile': '13712345678'} ]

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    //   [
    //       {'姓名':'小张', '手机号': '13712345678'}
    //     , {.....}
    //    ]

    //    目标
    //    [ {'username':'小张','mobile': '13712345678'}, {.....} ]
    // 
    let arr = [
      {'姓名': '小张','手机号':'1234567' }]
// 把一个对象数组中的每个对象的属性名,从中文改成英文
// 思路:对于原数组每个对象来说
//     (1)  找出所有的中文key
//     (2)  得到对应的英文key
//     (3)  拼接一个新对象: 英文key:值
// 封装函数, 将中文属性名 转换为 英文属性名

// 创建一个 中文属性名 和英文属性名 一一对应的对象
let info = {
    '姓名' : 'username',
    '手机号' : 'mobile'
  }
  // (1)  找出所有的中文key
  // 使用 map 方法遍历数组,使用 Object.keys() 方法 提取出 data对像 里面的属性名
arr.map(item=>{
   // 创建一个空对象:它的 属性名 是英文,属性值 和 item 的值是一致的
  const newArr = {}
  const newArr1 = Object.keys(item)
  console.log(newArr1);  // ['姓名', '手机号']
   // 遍历 ['姓名', '手机号'] 数组
  newArr1.forEach(it => {
      //     (2)  得到对应的英文key
     const i = info[it]
     console.log(i); //username,mobile
    //  (3)  拼接一个新对象: 英文key:值
      // 将 中文属性名对应的属性值 赋值给 对应于中文属性名的英文属性名
    newArr[i] = item[it]
  });
  console.log(newArr); //{username: '小张', mobile: '1234567'}
})
  </script>
</body>
</html>