LendAndRegret/node_modules/es-toolkit/dist/compat/array/keyBy.mjs
2026-05-02 17:27:43 +08:00

20 lines
620 B
JavaScript

import { reduce } from './reduce.mjs';
import { identity } from '../../function/identity.mjs';
import { isArrayLike } from '../predicate/isArrayLike.mjs';
import { isObjectLike } from '../predicate/isObjectLike.mjs';
import { iteratee } from '../util/iteratee.mjs';
function keyBy(collection, iteratee$1) {
if (!isArrayLike(collection) && !isObjectLike(collection)) {
return {};
}
const keyFn = iteratee(iteratee$1 ?? identity);
return reduce(collection, (result, value) => {
const key = keyFn(value);
result[key] = value;
return result;
}, {});
}
export { keyBy };