如何将一个对象拆分为单个属性的对象数组
如何将对象拆分为单个键值对的对象数组?
当然可以,有两种简洁的方法实现这个转换:
方法一:使用Object.entries() + Array.map()
Object.entries()会将对象转换为包含键值对数组的数组,再通过map()遍历每个键值对,构建单个键值对的对象:
let obj = { x: 3, y: 4, z: 5 }; const splitArray = Object.entries(obj).map(([key, value]) => ({ [key]: value })); console.log(splitArray); // 输出: [{x: 3}, {y: 4}, {z: 5}]
方法二:使用Object.keys() + Array.map()
如果更习惯直接处理对象的键,可以用Object.keys()获取所有键名,再遍历构建对象:
let obj = { x: 3, y: 4, z: 5 }; const splitArray = Object.keys(obj).map(key => ({ [key]: obj[key] })); console.log(splitArray); // 输出: [{x: 3}, {y: 4}, {z: 5}]
两种方法都依赖ES6的计算属性名语法([key]),能动态设置对象的键名,确保每个子对象只包含原对象的一个键值对。
内容的提问来源于stack exchange,提问作者AL-CEL
相关产品推荐
相关产品推荐

