如何将response数组转换为以user_name为键的对象结构?
将数组转换为指定结构对象的实现方法
可以用JavaScript的reduce方法快速实现这个格式转换,它能高效地把数组迭代处理成目标结构的对象:
包含所有元素的转换代码
const response = [ { id: 1, user_name: 'abc', phone_number: 1234567890 }, { id: 2, user_name: 'def', phone_number: 9823437483 }, { id: 3, user_name: 'ghi', phone_number: 9834763467 } ]; const transformedObj = response.reduce((acc, item) => { acc[item.user_name] = item; return acc; }, {});
仅保留前两个元素的转换代码
如果只需要你示例里的前两个用户数据,在reduce前用slice截取数组即可:
const transformedObj = response.slice(0, 2).reduce((acc, item) => { acc[item.user_name] = item; return acc; }, {});
代码说明
reduce的第一个参数是回调函数,每次遍历数组元素时,会把当前元素以它的user_name值作为键,存入累加对象acc中- 第二个参数
{}是累加对象的初始值 - 执行后
transformedObj就会完全符合你想要的结构:以每个用户的user_name为键,对应的值是该用户的完整信息对象
内容的提问来源于stack exchange,提问作者devReact
相关产品推荐
相关产品推荐

