方法一
let obj = {
name: ['kobe', 'curry', 'james'],
age: [24, 30, 23],
gender: ['男', '男', '男']
}
let keys = Object.keys(obj)
console.log(keys) // ['name', 'age', 'gender']
let len = obj[keys[0]].length
console.log(len) // 3
let arr = []
for (let i = 0; i < len; i++) {
let o = {}
keys.forEach(r => {
o[r] = obj[r][i]
})
arr.push(o)
}
console.log(arr)
// [{name: 'kobe', age: 24, gender: '男'},
// {name: 'curry', age: 30, gender: '男'},
// {name: 'james', age: 23, gender: '男'}]
方法二
let obj = {
name: ['kobe', 'curry', 'james'],
age: [24, 30, 23],
gender: ['男', '男', '男']
}
let convert = (data) => Array.from({ length: Object.values(data)[0].length })
.map((r, i) => Object.keys(data).reduce((total, key) => {
total[key] = data[key][i]
return total
}, {}))
console.log(convert(obj));