我有一个看起来像这样的对象数组:
arr = [
{name: "john", age: 23},
{name: "mary", age: 40},
{name: "zack", age: 17}
]
我正在尝试将其转换为这样的内容:
{
name: ["john", "mary", "zack"],
age: ['23', 40, 17]
}
我尝试了以下
arr.map(item => item.name)
arr.map(item => item.age)
return {names, ages}
并且可以正常工作,但前提是您事先已经知道要转换的对象的键。
我希望能够动态加载对象键和值的对应数组。假设我不知道示例数组中的对象具有“名称”和“年龄”作为键。
假设列表中的每个对象都具有相同的键,则可以获取第一个对象的键
const keys = Object.keys(arr[0])
然后使用上述方法通过键进行映射
const returnObj = {}
keys.forEach(key => {
returnObj[key] = arr.map(item => item[key])
})
return returnObj
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句