如何高效简洁地将指定结构的Object转换为Object数组?
简洁高效的转换实现方案
嘿,这事儿用ES6原生API就能一行搞定,简洁又高效,完全不用写复杂的循环:
const originalObj = { "1": "Technology", "2": "Startup", "3": "IT" }; const transformedArray = Object.entries(originalObj).map(([key, name]) => ({ id: +key, name }));
为啥这方案靠谱?
- 简洁性:
Object.entries()直接把原对象拆解成[键, 值]的二维数组,再通过map()快速映射成目标结构,代码一目了然。 - 高效性:这俩都是JS引擎深度优化过的原生方法,比手写
for...in循环性能更稳定,还能自动避开原型链上的冗余属性。 - 可读性:解构语法
([key, name])直接把键值对赋值给变量,不用再写entry[0]、entry[1]这种生硬的下标。
如果你的运行环境比较老旧(不支持ES6解构),也可以换成兼容写法:
const transformedArray = Object.entries(originalObj).map(entry => ({ id: Number(entry[0]), name: entry[1] }));
运行后得到的结果就是你要的结构:
[ {id: 1, name: "Technology"}, {id: 2, name: "Startup"}, {id: 3, name: "IT" } ]
内容的提问来源于stack exchange,提问作者Sandra Willford
相关产品推荐
相关产品推荐

