3
关注
1636
浏览

Ramdajs keyBy相当于lodash

为什么被折叠? 0 个回复被折叠
shulinqian 未验证用户 用户来自于: 广东省
2020-09-16 10:16

最优雅的方式我可以ramda得到这样的:

const arr = [{id: 1, key: '1'}, {id: 2, key: '1'}, {id: 2, key: '2'}]; 
const reduceToIds = R.reduceBy(R.nthArg(1), [], R.prop('id')); 

reduceToIds(arr); 

REPL http://ramdajs.com/repl/#?const%20arr%20%3D%20%5B%7Bid%3A%201%2C%20key%3A%20%271%27%7D%2C%20%7Bid%3A%202%2C%20key%3A%20%271%27%7D%2C%20%7Bid%3A%202%2C%20key%3A%20%272%27%7D%5D%3B%0Aconst%20reduceToIds%20%3D%20R.reduceBy%28R.nthArg%281%29%2C%20%5B%5D%2C%20R.prop%28%27id%27%29%29%3B%0A%0AreduceToIds%28arr%29%3B

特大号废柴 未验证用户 用户来自于: 广东省
2020-09-16 07:24

你可以用非常基本的功能,减少解决这个问题。

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

关于作者

问题动态

发布时间
2020-09-15 15:51
更新时间
2022-09-15 16:01
关注人数
3 人关注
个人工作笔记 Powered BY WeCenter V4.1.0 © 2024 粤ICP备2020123311号