一道JavaScript数组对象相关的题

67 阅读1分钟

代码如下

const result = [
  {
    姓名: '小张',
    手机号: '13800000252',
    入职日期: 44505,
    转正日期: 44892,
    工号: '9002',
    部门: '总裁办'
  },
  {
    姓名: '小李',
    手机号: '13810000512',
    入职日期: 44506,
    转正日期: 44893,
    工号: 9006,
    部门: '总裁办'
  }
]
// 将transExcel的代码写完
function transExcel(result) {
  const mapInfo = {
    入职日期: 'timeOfEntry',
    手机号: 'mobile',
    姓名: 'username',
    转正日期: 'correctionTime',
    工号: 'workNumber',
    部门: 'departmentName',
    聘用形式: 'formOfEmployment'
  }

  return result.reduce((a, b) => {
    // 第一种做法
    // const obj = {}
    // for (const key in b) {
    //   obj[mapInfo[key]] = b[key]
    // }

    // a.push(obj)

    // 第二种做法
    a.push(
      Object.keys(b).reduce((c, d) => {
        c[mapInfo[d]] = b[d]

        return c
      }, {})
    )

    return a
  }, [])
  // 写代码
}
const data = transExcel(result)
console.log(data)
//data:每个属性名都要是英文。如下:
// [
//     {
//         "username": "小张",
//         "mobile": "13800000252",
//         "timeOfEntry": 44505,
//         "correctionTime": 44892,
//         "workNumber": "9002",
//         "departmentName": "总裁办"
//     },
//     {
//         "username": "小李",
//         "mobile": "13810000512",
//         "timeOfEntry": 44506,
//         "correctionTime": 44893,
//         "workNumber": 9006,
//         "departmentName": "总裁办"
//     }
// ]