如何将JavaScript对象转换为由单键值对对象组成的数组
JavaScript普通对象转单键对象数组实现方案
核心逻辑是遍历原对象的自有键值对,每一组键值对生成一个独立对象,最后将所有对象汇总为数组即可。
ES6+ 简洁实现
const transform = (inputObj) => Object.entries(inputObj).map(([key, value]) => ({ [key]: value }))
使用示例
const input = { title: "This is a Title", name: "This is a name" } const output = transform(input) console.log(output) // 输出结果: // [ // {title: "This is a Title"}, // {name: "This is a name"} // ]
逻辑说明
Object.entries(inputObj)会将原对象转换为[['key1', 'value1'], ['key2', 'value2']]格式的二维键值对数组map遍历每一组键值对,通过计算属性[key]动态设置新对象的键,箭头函数返回对象时外层包裹括号是为了避免对象的大括号被识别为函数体边界
兼容旧环境实现
如果需要兼容不支持ES6+语法的环境,可以使用for...in遍历实现:
function transform(inputObj) { const result = [] for (var key in inputObj) { // 过滤原型链继承属性,仅保留对象自身属性 if (inputObj.hasOwnProperty(key)) { var tempObj = {} tempObj[key] = inputObj[key] result.push(tempObj) } } return result }
内容的提问来源于stack exchange,提问作者LearningReact
相关产品推荐
相关产品推荐

