从对象数组返回具有唯一键的对象

时间:2017-06-14 08:07:52

标签: arrays object reduce

我如何获得:

let items = [ { id: 1, name: 'one'}, { id: 60, name 'sixty'}]

为:

{ 1: { id: 1, name: 'one' }, 60: { id: 60, name: 'sixty' } }

我真的不介意这个问题的重复ID。

我试过这个:

items.reduce((allItems, item) => {
   return allItems[item.id] = item;
}, {});

来自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce?v=control#Counting_instances_of_values_in_an_object

但它不起作用,因为示例建议......确实只减少单个项目数组的工作,而不是对象?

有关如何从地图返回密钥的任何建议,或某些可以为我执行此操作的lodash函数吗? (即实际返回[item.id]: { ...item},然后用上面的对象结果将它们展平,并使用唯一键。

1 个答案:

答案 0 :(得分:0)

显然我不应该马上归还:

items.reduce((allItems, item) => {
   allItems[item.id] = item;
   return allItems;
}, {});