这是可能的lodash或任何其他javascript /打字稿方式
var obj = {
a: [ {id:1},{id:2},{id:3}]
b: [ {id:4},{id:5},{id:6}]
c: [ {id:7},{id:8},{id:9}]
}
// transform to
var arr = [
{title:a, items:[{id:1},{id:2},{id:3}]},
{title:b, items: [ {id:4},{id:5},{id:6}]},
{title:c, items: [ id:7},{id:8},{id:9}]}
]
答案 0 :(得分:1)
您可以使用Object.keys
:
var obj = {
a: [ {id:1},{id:2},{id:3}],
b: [ {id:4},{id:5},{id:6}],
c: [ {id:7},{id:8},{id:9}]
}
var result = Object.keys(obj).map(function(key) {
return { title: key, items: obj[key] }
})
console.log(result);

答案 1 :(得分:1)
你可以使用lodash和ES6高度可读的单行代码:
_.map(obj, (items, title) => ({ title, items }));
您可以完全避免Object.keys()
,因为map()适用于对象。回调函数获取对象键和该键的值作为参数。因此,您可以使用允许对象文字简写符号的方式命名它们,就像我们在此处使用items
和title
一样。