实现一个函数 keyBy
更多描述 类似 lodash.keyBy,这里仅仅考虑第二个参数为函数的情况
// Output: {
// "1": {
// "id": 1,
// "name": "山月"
// },
// "2": {
// "id": 2,
// "name": "shanyue"
// }
// }
keyBy(
[
{ id: 1, name: "山月" },
{ id: 2, name: "shanyue" },
],
(x) => x.id,
);
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 697
Author 回答者: shfshanyue
function keyBy(list, by) {
return list.reduce((acc, x) => {
acc[by(x)] = x;
return acc;
}, {});
}
Author 回答者: Yinzhuo19970516
这里其实是利用对象的键都是有序的,把类数组转成了对象