将JavaScript对象转换为指定结构数组遇阻,求原因解析
嘿,我来帮你搞定这个对象转数组的问题!
解决方法:将JavaScript对象转换为单属性对象数组
你想要的转换其实可以通过Object.entries()结合map()方法轻松实现,直接上代码:
const xyz = { 'fName': {type: 'string'}, 'mName': {type: 'string'}, 'lName': {type: 'string'} }; // 核心转换逻辑 const arr = Object.entries(xyz).map(([key, value]) => ({ [key]: value })); console.log(arr); // 输出结果正是你想要的: // [ {'fName': {type: 'string'}}, {'mName': {type: 'string'}}, {'lName': {type: 'string'}} ]
你之前可能踩的坑
我猜你之前失败大概率是因为这些细节没注意到:
- 计算属性名用错:如果直接写
{ key: value },对象的键会变成固定字符串"key",而不是原对象的fName这类属性名。必须用{ [key]: value }这种方括号包裹变量的语法,才能把key变量的实际值作为对象键。 - 箭头函数语法遗漏:箭头函数返回对象字面量时,必须用圆括号包裹(比如
() => ({ ... })),如果直接写() => { key: value },JS会把大括号当成代码块,而不是对象,自然得不到想要的结果。 - 遍历方式不匹配:如果只用
Object.keys()遍历,可能会忘记对应的值,或者构造对象时没正确关联键和值,导致结果不符合预期。
试试上面的代码,应该就能顺利得到目标数组啦!
内容的提问来源于stack exchange,提问作者Muthukumar Jayamurugan
相关产品推荐
相关产品推荐

