js:关于遍历数组中对象封装数据问题
有个数组如下结构：
```
    let a = [
       {0: '内容11', 1: '内容12', 2: '内容13', 3: '内容14', head: '头部1'} ,
       {0: '内容21', 1: '内容22', 2: '内容23', 3: '内容24', head: '头部2'} ,
       {0: '内容31', 1: '内容32', 2: '内容33', 3: '内容34', head: '头部3'} ,
    ]
```
怎么变成下面的结构
```
     let b = [
         {头部1: '内容11', 头部2: '内容21', 头部3: '内容31'},  
         {头部1: '内容11', 头部2: '内容21', 头部3: '内容31'},  
         {头部1: '内容11', 头部2: '内容21', 头部3: '内容31'},    
         {头部1: '内容14', 头部2: '内容24', 头部3: '内容34'},  
        ]
```
写了好久，总有问题，希望能解决。谢谢！
```
// 你这期望值给的我也是看不懂 大致猜测是行变列

let a = [
    { 0: '内容11', 1: '内容12', 2: '内容13', 3: '内容14', head: '头部1' },
    { 0: '内容21', 1: '内容22', 2: '内容23', 3: '内容24', head: '头部2' },
    { 0: '内容31', 1: '内容32', 2: '内容33', 3: '内容34', head: '头部3' }
]

function transformList(arr) {
    if (!Array.isArray(arr)) return

    return arr.reduce((temp, item, i) => {
        Object.keys(item).forEach((key, j) => {
            if (key === 'head') return
            if (!temp[j]) temp[j] = {}

            temp[j][item.head] = item[key]
        })
        return temp
    }, [])
}

console.log(transformList(a))
// 打印
[ { '头部1': '内容11', '头部2': '内容21', '头部3': '内容31' },
  { '头部1': '内容12', '头部2': '内容22', '头部3': '内容32' },
  { '头部1': '内容13', '头部2': '内容23', '头部3': '内容33' },
  { '头部1': '内容14', '头部2': '内容24', '头部3': '内容34' } ]

```