Javascript 将对象转换为数组并将键添加为新属性
我有一个要转换为数组的对象。我希望该键作为数组中每个对象的一部分。如何将对象转换为数组并将键保留为新属性id?我有工作代码,但不知道是否有更干净/更简单的方法 示例对象Javascript 将对象转换为数组并将键添加为新属性,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,我有一个要转换为数组的对象。我希望该键作为数组中每个对象的一部分。如何将对象转换为数组并将键保留为新属性id?我有工作代码,但不知道是否有更干净/更简单的方法 示例对象 const obj = { 'ID-ABC': { price: 100 }, 'ID-DEF': { price: 200 } } [{ id: 'ID-ABC', price: 100 }, { id: 'ID-DEF', price: 200 }] 预期产出 const obj = {
const obj = {
'ID-ABC': {
price: 100
},
'ID-DEF': {
price: 200
}
}
[{ id: 'ID-ABC', price: 100 }, { id: 'ID-DEF', price: 200 }]
预期产出
const obj = {
'ID-ABC': {
price: 100
},
'ID-DEF': {
price: 200
}
}
[{ id: 'ID-ABC', price: 100 }, { id: 'ID-DEF', price: 200 }]
当前代码
const array = []
for (const property in obj) {
const newObj = {
id: property,
price: obj[property].price
}
array.push(newObj)
}
您的代码已经是最简单的解决方案。您可以像这样内联
newObj
变量:
const数组=[]
for(对象中的常量属性){
array.push({
id:财产,
价格:obj[property]。价格
})
}
但是剩下的代码真的很好 使用Object.entries()
获取[id,val]
对的数组,然后通过添加id
,并展开原始对象(val
),映射以创建对象数组:
const obj={“ID-ABC”:{“price”:100},“ID-DEF”:{“price”:200}
常量结果=对象项(obj)
.map(([id,val])=>({id,…val}))
console.log(结果)
请不要回答已关闭的问题。如果用问题解决问题,则可以重新打开该问题。如果您当前的代码有效,您可能会在以下方面做得更好(正如我在删除其他问题时所说的那样)。