如何解决将嵌套对象数组转换为对象数组的最佳方法
const data = [
{
'UTMEH5': {
descr: {
ordertype: 'limit',pair: 'XBT/USD',price: '5000.00000',},status: 'open',vol: '0.00200000',{
'3F2TYE': {
descr: {
ordertype: 'limit',price: '10000.00000'
},]
const orders = data.map((order) => {
return Object.entries(order).map(([key,value]) => ({
orderid: key,pair: value['descr']['pair'],vol: value['vol'],price: value['descr']['price'],ordertype: value['descr']['ordertype'],status: value['status'],}))})
console.log(orders)
通过上面的代码,我得到了这个:
[
[
{
"orderid": "UTMEH5","pair": "XBT/USD","vol": "0.00200000","price": "5000.00000","ordertype": "limit","status": "open"
}
],[
{
"orderid": "3F2TYE","price": "10000.00000","status": "open"
}
]
]
但我想要这个:
[
{
"orderid": "UTMEH5","status": "open"
},{
"orderid": "3F2TYE","status": "open"
}
]
对于重复的建议,我似乎可以使用 .flat()
,但这似乎是获得我想要的东西的迂回方式。有没有更好更直接的方法?
解决方法
对于这种情况,您可以使用 flatMap()
代替 map()
。
const data = [{
'UTMEH5': {
descr: {
ordertype: 'limit',pair: 'XBT/USD',price: '5000.00000',},status: 'open',vol: '0.00200000',{
'3F2TYE': {
descr: {
ordertype: 'limit',price: '10000.00000'
},]
const orders = data.flatMap((order) => Object.entries(order).map(([key,value]) => ({
orderid: key,vol: value['vol'],status: value['status'],...value['descr'],// you can use spread operator here for brevity as well
})))
console.log(orders)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。