es6/7中的javascript对象数组转换
我是Javascript新手,我通常需要处理对象和数组之间的转换,但如何在ES6/7中更优雅、更简洁,比如使用es6/7中的javascript对象数组转换,javascript,ecmascript-6,ecmascript-2016,Javascript,Ecmascript 6,Ecmascript 2016,我是Javascript新手,我通常需要处理对象和数组之间的转换,但如何在ES6/7中更优雅、更简洁,比如使用Spread syntax或lodash…,而不是用于循环迭代(因为我不喜欢可变的东西) 我要转换以下对象: { book: { 1001: 'a', 1002: 'b', 1003: 'c' }, game: { 1001: 'a' } } 要在对象数组的下面执行以下操作: [ { category: 'book',
Spread syntax
或lodash
…,而不是用于循环迭代(因为我不喜欢可变的东西)
我要转换以下对象:
{
book: {
1001: 'a',
1002: 'b',
1003: 'c'
},
game: {
1001: 'a'
}
}
要在对象数组的下面执行以下操作:
[
{
category: 'book',
item: [
{ id: 1001, name: 'a' },
{ id: 1002, name: 'b' },
{ id: 1003, name: 'c' }
]
},
{
category: 'game',
item: [
{ id: 1001, name: 'a' }
]
}
]
您可以构建新对象并将内部对象映射为新项
var data={book:{1001:a',1002:b',1003:c'},game:{1001:a'},
结果=对象
.条目(数据)
.map([类别,项目])=>
({category,item:Object.entries(item.map)([id,name])=>({id,name}));
控制台日志(结果)代码>
.as控制台包装{max height:100%!important;top:0;}
您想要的东西无效。。。假设你想要它作为一个数组,而不是一个对象。不清楚你在寻找什么。第一次编辑至少将您所需的状态转换为有效数据,但您已将其更改为无效数据。很抱歉造成混淆。已更新为对象的数组。