基本上我想知道是否有更好的方法或更短的代码来完成我的工作。我最近开始使用lodash库。
所以,
我有一个像下面这样的对象的对象。
{
key1:{ firstname: john, lastname: doe},
key2:{ firstname: david, lastname: smith},
}
最终我想把它们作为以下对象数组。
[
{ID: key1, firstname: john, lastname: doe },
{ID: key2, firstname: david, lastname: smith}
]
这就是我所做的。
const ArrayOfObjects = [];
_.each(ObjectsOfObjects, (value, key) => {
ArrayOfObjects.push({
UID: key,
...value,
});
})
答案 0 :(得分:1)
Lodash的_.map()
可以迭代对象。传递给iteratee函数的第二个参数是key
:
const input = {
key1:{ firstname: 'john', lastname: 'doe'},
key2:{ firstname: 'david', lastname: 'smith'},
}
const result = _.map(input, (v, UID) => ({ UID, ...v }))
console.log(result)

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>
&#13;
答案 1 :(得分:0)
使用Object.entries
和.map
:
const input = {
key1:{ firstname: 'john', lastname: 'doe'},
key2:{ firstname: 'david', lastname: 'smith'},
}
const transformed = Object.entries(input).map(([key, obj]) => Object.assign(obj, { ID: key }));
console.log(transformed);
&#13;