Skip to content

keyBy

映射数组中的每个元素,基于提供的生成键的函数。

该函数接受一个数组和一个生成键的函数,返回一个对象,其中键是生成的键,值是对应的元素。

如果有多个元素生成相同的键,则最后一个元素将作为该键的值。

签名

typescript
function keyBy<T, K extends PropertyKey>(arr: T[], getKeyFromItem: (item: T) => K): Record<K, T>;

参数

  • arr (T[]): 要映射的元素数组。
  • getKeyFromItem ((item: T) => K): 从元素生成键的函数。

返回值

(Record<K, T>) 一个对象,其中键映射到数组中的每个元素。

示例

typescript
const array = [
  { category: 'fruit', name: 'apple' },
  { category: 'fruit', name: 'banana' },
  { category: 'vegetable', name: 'carrot' },
];
const result = keyBy(array, item => item.category);
// result 将会是:
// {
//   fruit: { category: 'fruit', name: 'banana' },
//   vegetable: { category: 'vegetable', name: 'carrot' }
// }