如何将指定结构的对象转换为包含animal属性的数组?
解决方案
你已经用Object.entries()迈出了关键一步,接下来只需要用map()方法遍历返回的条目,将键和对应值重组为目标结构即可。
完整实现代码
const AnimalObj = { Cat: { value: 50 }, Dog: { value: 80 } }; // 核心转换逻辑 const animalArr = Object.entries(AnimalObj).map(([animal, { value }]) => ({ animal, value })); console.log(animalArr); // 输出结果: // [ { animal: 'Cat', value: 50 }, { animal: 'Dog', value: 80 } ]
步骤解释
Object.entries(AnimalObj):将原对象转换为二维数组,每个子数组格式为[键名, 对应子对象],即:[['Cat', { value: 50 }], ['Dog', { value: 80 }]]map()遍历处理:- 通过数组解构
([animal, { value }])直接取出每个子数组里的键名(赋值给animal)和子对象的value属性 - 返回一个新对象,包含
animal和value两个属性
- 通过数组解构
扩展场景:子对象含多个属性
如果原对象的子对象还有其他属性(比如{ value: 50, type: 'mammal' }),可以用展开运算符保留所有属性,写法更灵活:
const animalArr = Object.entries(AnimalObj).map(([animal, obj]) => ({ animal, ...obj }));
内容的提问来源于stack exchange,提问作者Jimbob
相关产品推荐
相关产品推荐

