簡體   English   中英

Ramdajs keyBy 相當於 lodash

[英]Ramdajs keyBy equivalent of lodash

我有一個要轉換為對象的數組。 例如:

const arr = [{id: 1, key: ''}, {id: 2, key: ''}];

我希望結果是:

const object = { 1: {id: 1, key: ''}, 2: { id: 2, key: ''}}

使用lodash我可以使用keyBy函數,但是我正在使用ramda並且沒有在那里找到這個功能。

如果有人仍然通過搜索找到這個,正確的答案是indexBy ,在 2016 年年中添加。

const list = [
  { id: "xyz", title: "A" },
  { id: "abc", title: "B" },
];
R.indexBy(R.prop("id"), list);
//=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}

也可以看看:

你可以用非常基本的reduce函數來解決這個問題。

function keyBy(entities, id = "id") {
    return entities.reduce((acc, entity) => {
      acc[entity[id]] = entity;
      return acc;
    }, {});
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM