Avatar for the toss user
toss
es-toolkit
BlogDocsChangelog

feat(countBy): Add countBy function

#117Merged
Comparing
l2hyunwoo:feature/#88
(
44f33b4
) with
l2hyunwoo:feature/#88
(
e8c1e25
)
CodSpeed Performance Gauge
-89%
Improvements
3
Regressions
7
Untouched
98
New
0
Dropped
0
Ignored
0

Benchmarks

Failed

lodash/differenceRegression
benchmarks/difference.bench.ts::difference::lodash/difference
CodSpeed Performance Gauge
-83%
56.7 µs
337.1 µs
lodash/intersectionWithRegression
benchmarks/intersectionWith.bench.ts::intersectionWith::lodash/intersectionWith
CodSpeed Performance Gauge
-65%
92 µs
263.2 µs
lodash/isNilRegression
benchmarks/isNil.bench.ts::isNil::lodash/isNil
CodSpeed Performance Gauge
-89%
35.3 µs
319.7 µs
es-toolkit/rangeRegression
benchmarks/range.bench.ts::range::es-toolkit/range
CodSpeed Performance Gauge
-19%
39.2 µs
48.3 µs
lodash/rangeRegression
benchmarks/range.bench.ts::range::lodash/range
CodSpeed Performance Gauge
-25%
33.4 µs
44.2 µs
lodash/unionWithRegression
benchmarks/unionWith.bench.ts::unionWith::lodash/unionWith
CodSpeed Performance Gauge
-65%
84.8 µs
239.8 µs
lodash/xorRegression
benchmarks/xor.bench.ts::xor::lodash/xor
CodSpeed Performance Gauge
-36%
255.6 µs
397.5 µs

Improved

lodash/unionBy
benchmarks/unionBy.bench.ts::unionBy::lodash/unionBy
CodSpeed Performance Gauge
×3.1
232.7 µs
75.4 µs
es-toolkit/countBy
benchmarks/countBy.bench.ts::countBy::es-toolkit/countBy
CodSpeed Performance Gauge
+26%
70.2 µs
55.5 µs
es-toolkit/uniqWith
benchmarks/uniqWith.bench.ts::uniqWith, small arrays::es-toolkit/uniqWith
CodSpeed Performance Gauge
+16%
44.4 µs
38.4 µs

Passed

lodash/uniqWith
benchmarks/uniqWith.bench.ts::uniqWith, small arrays::lodash/uniqWith
CodSpeed Performance Gauge
+4%
37.7 µs
36.4 µs
es-toolkit/clamp
benchmarks/clamp.bench.ts::clamp::es-toolkit/clamp
CodSpeed Performance Gauge
+1%
20.8 µs
20.6 µs
es-toolkit/takeRight
benchmarks/takeRight.bench.ts::takeRight::es-toolkit/takeRight
CodSpeed Performance Gauge
+1%
19.8 µs
19.6 µs
lodash/mean
benchmarks/mean.bench.ts::mean::lodash/mean
CodSpeed Performance Gauge
+1%
23.5 µs
23.2 µs
es-toolkit/uniq
benchmarks/uniq.bench.ts::uniq::es-toolkit/uniq
CodSpeed Performance Gauge
+1%
23.3 µs
23.1 µs
es-toolkit/round
benchmarks/round.bench.ts::round::es-toolkit/round
CodSpeed Performance Gauge
+1%
21.5 µs
21.4 µs
es-toolkit/takeRightWhile
benchmarks/takeRightWhile.bench.ts::takeRightWhile::es-toolkit/takeRightWhile
CodSpeed Performance Gauge
+1%
22.7 µs
22.5 µs
lodash/takeRight
benchmarks/takeRight.bench.ts::takeRight::lodash/takeRight
CodSpeed Performance Gauge
+1%
26.1 µs
26 µs
lodash/uniq
benchmarks/uniq.bench.ts::uniq::lodash/uniq
CodSpeed Performance Gauge
+1%
28.4 µs
28.3 µs
es-toolkit/minBy
benchmarks/minBy.bench.ts::minBy::es-toolkit/minBy
CodSpeed Performance Gauge
0%
36.6 µs
36.4 µs
lodash/sample
benchmarks/sample.bench.ts::sample::lodash/sample
CodSpeed Performance Gauge
0%
23 µs
22.9 µs
es-toolkit/sum
benchmarks/sum.bench.ts::sum::es-toolkit/sum
CodSpeed Performance Gauge
0%
21.6 µs
21.5 µs
es-toolkit/partition
benchmarks/partition.bench.ts::partition::es-toolkit/partition
CodSpeed Performance Gauge
0%
35.2 µs
35.1 µs
es-toolkit/union
benchmarks/union.bench.ts::union::es-toolkit/union
CodSpeed Performance Gauge
0%
32.5 µs
32.4 µs
es-toolkit/once
benchmarks/once.bench.ts::once::es-toolkit/once
CodSpeed Performance Gauge
0%
17.3 µs
17.2 µs
lodash/drop
benchmarks/drop.bench.ts::drop::lodash/drop
CodSpeed Performance Gauge
0%
26.2 µs
26.1 µs
es-toolkit/difference
benchmarks/difference.bench.ts::difference::es-toolkit/difference
CodSpeed Performance Gauge
0%
26.6 µs
26.5 µs
es-toolkit/uniqBy
benchmarks/uniqBy.bench.ts::uniqBy, large arrays::es-toolkit/uniqBy
CodSpeed Performance Gauge
0%
17.4 ms
17.3 ms
es-toolkit/isNil
benchmarks/isNil.bench.ts::isNil::es-toolkit/isNil
CodSpeed Performance Gauge
0%
17.9 µs
17.8 µs
es-toolkit/fill
benchmarks/fill.bench.ts::fill function performance with custom start and end::es-toolkit/fill
CodSpeed Performance Gauge
0%
27.7 µs
27.6 µs
lodash/uniqBy
benchmarks/uniqBy.bench.ts::uniqBy, large arrays::lodash/uniqBy
CodSpeed Performance Gauge
0%
16.7 ms
16.7 ms
lodash/countBy
benchmarks/countBy.bench.ts::countBy::lodash/countBy
CodSpeed Performance Gauge
0%
221.7 µs
221.1 µs
lodash/clamp
benchmarks/clamp.bench.ts::clamp::lodash/clamp
CodSpeed Performance Gauge
0%
21.9 µs
21.8 µs
lodash/minBy
benchmarks/minBy.bench.ts::minBy::lodash/minBy
CodSpeed Performance Gauge
0%
38.2 µs
38.1 µs
es-toolkit/mean
benchmarks/mean.bench.ts::mean::es-toolkit/mean
CodSpeed Performance Gauge
0%
22.8 µs
22.8 µs
lodash/omitBy
benchmarks/omitBy.bench.ts::omitBy::lodash/omitBy
CodSpeed Performance Gauge
0%
79.5 µs
79.3 µs
lodash/take
benchmarks/take.bench.ts::take::lodash/take
CodSpeed Performance Gauge
0%
26 µs
26 µs
es-toolkit/shuffle
benchmarks/shuffle.bench.ts::shuffle::es-toolkit/shuffle
CodSpeed Performance Gauge
0%
41.3 µs
41.2 µs
lodash/keyBy
benchmarks/keyBy.bench.ts::keyBy::lodash/keyBy
CodSpeed Performance Gauge
0%
58.4 µs
58.3 µs
es-toolkit/differenceBy
benchmarks/differenceBy.bench.ts::differenceBy::es-toolkit/differenceBy
CodSpeed Performance Gauge
0%
31 µs
30.9 µs
lodash/pick
benchmarks/pick.bench.ts::pick::lodash/pick
CodSpeed Performance Gauge
0%
86.5 µs
86.3 µs
lodash/chunk
benchmarks/chunk.bench.ts::chunk::lodash/chunk
CodSpeed Performance Gauge
0%
29.1 µs
29.1 µs
es-toolkit/chunk
benchmarks/chunk.bench.ts::chunk::es-toolkit/chunk
CodSpeed Performance Gauge
0%
28.1 µs
28.1 µs
es-toolkit/fill
benchmarks/fill.bench.ts::fill function performance comparison::es-toolkit/fill
CodSpeed Performance Gauge
0%
25.8 µs
25.8 µs
lodash/intersection
benchmarks/intersection.bench.ts::intersection, small arrays::lodash/intersection
CodSpeed Performance Gauge
0%
70.3 µs
70.2 µs
es-toolkit/dropRightWhile
benchmarks/dropRightWhile.bench.ts::dropRightWhile::es-toolkit/dropRightWhile
CodSpeed Performance Gauge
0%
26.3 µs
26.3 µs
lodash/takeRightWhile
benchmarks/takeRightWhile.bench.ts::takeRightWhile::lodash/takeRightWhile
CodSpeed Performance Gauge
0%
29.5 µs
29.5 µs
es-toolkit/unionBy
benchmarks/unionBy.bench.ts::unionBy::es-toolkit/unionBy
CodSpeed Performance Gauge
0%
47.4 µs
47.4 µs
es-toolkit/keyBy
benchmarks/keyBy.bench.ts::keyBy::es-toolkit/keyBy
CodSpeed Performance Gauge
0%
51.4 µs
51.4 µs
lodash/groupBy
benchmarks/groupBy.bench.ts::groupBy::lodash/groupBy
CodSpeed Performance Gauge
0%
61.5 µs
61.5 µs
lodash/dropWhile
benchmarks/dropWhile.bench.ts::dropWhile::lodash/dropWhile
CodSpeed Performance Gauge
0%
29.7 µs
29.7 µs
lodash/intersection
benchmarks/intersection.bench.ts::intersection, large arrays::lodash/intersection
CodSpeed Performance Gauge
0%
18.5 ms
18.5 ms
es-toolkit/pick
benchmarks/pick.bench.ts::pick::es-toolkit/pick
CodSpeed Performance Gauge
0%
30.8 µs
30.8 µs
lodash/zipWith
benchmarks/zipWith.bench.ts::zipWith::lodash/zipWith
CodSpeed Performance Gauge
0%
260.2 µs
260.2 µs
lodash/sampleSize
benchmarks/sampleSize.bench.ts::sampleSize::lodash/sampleSize
CodSpeed Performance Gauge
0%
37.3 µs
37.3 µs
lodash/round
benchmarks/round.bench.ts::round::lodash/round
CodSpeed Performance Gauge
0%
40.5 µs
40.5 µs
lodash/differenceWith
benchmarks/differenceWith.bench.ts::differenceWith::lodash/differenceWith
CodSpeed Performance Gauge
0%
69.4 µs
69.4 µs
lodash/differenceBy
benchmarks/differenceBy.bench.ts::differenceBy::lodash/differenceBy
CodSpeed Performance Gauge
0%
70.7 µs
70.7 µs
lodash/union
benchmarks/union.bench.ts::union::lodash/union
CodSpeed Performance Gauge
0%
75.9 µs
75.9 µs
lodash/zipObject
benchmarks/zipObject.bench.ts::zipObject::lodash/zipObject
CodSpeed Performance Gauge
0%
32.4 µs
32.4 µs
es-toolkit/groupBy
benchmarks/groupBy.bench.ts::groupBy::es-toolkit/groupBy
CodSpeed Performance Gauge
0%
55.3 µs
55.3 µs
es-toolkit/differenceWith
benchmarks/differenceWith.bench.ts::differenceWith::es-toolkit/differenceWith
CodSpeed Performance Gauge
0%
31.6 µs
31.7 µs
es-toolkit/takeWhile
benchmarks/takeWhile.bench.ts::takeWhile::es-toolkit/takeWhile
CodSpeed Performance Gauge
0%
22.6 µs
22.6 µs
es-toolkit/xor
benchmarks/xor.bench.ts::xor::es-toolkit/xor
CodSpeed Performance Gauge
0%
57 µs
57.1 µs
es-toolkit/uniqWith
benchmarks/uniqWith.bench.ts::uniqWith, large arrays::es-toolkit/uniqWith
CodSpeed Performance Gauge
0%
7.4 s
7.4 s
lodash/uniqWith
benchmarks/uniqWith.bench.ts::uniqWith, large arrays::lodash/uniqWith
CodSpeed Performance Gauge
0%
7.1 s
7.1 s
es-toolkit/random
benchmarks/random.bench.ts::random::es-toolkit/random
CodSpeed Performance Gauge
0%
19.8 µs
19.8 µs
es-toolkit/zip
benchmarks/zip.bench.ts::zip::es-toolkit/zip
CodSpeed Performance Gauge
0%
37.9 µs
38 µs
lodash/shuffle
benchmarks/shuffle.bench.ts::shuffle::lodash/shuffle
CodSpeed Performance Gauge
0%
42.8 µs
42.8 µs
es-toolkit/xorWith
benchmarks/xorWith.bench.ts::xorWith::es-toolkit/xorWith
CodSpeed Performance Gauge
0%
69 µs
69.1 µs
lodash/random
benchmarks/random.bench.ts::random::lodash/random
CodSpeed Performance Gauge
0%
33.3 µs
33.4 µs
lodash/maxBy
benchmarks/maxBy.bench.ts::maxBy::lodash/maxBy
CodSpeed Performance Gauge
0%
38.3 µs
38.4 µs
lodash/omit
benchmarks/omit.bench.ts::omit::lodash/omit
CodSpeed Performance Gauge
0%
91.4 µs
91.6 µs
lodash/xorWith
benchmarks/xorWith.bench.ts::xorWith::lodash/xorWith
CodSpeed Performance Gauge
0%
103.4 µs
103.6 µs
es-toolkit/zipWith
benchmarks/zipWith.bench.ts::zipWith::es-toolkit/zipWith
CodSpeed Performance Gauge
0%
58.6 µs
58.8 µs
lodash/sum
benchmarks/sum.bench.ts::sum::lodash/sum
CodSpeed Performance Gauge
0%
22.6 µs
22.7 µs
es-toolkit/intersectionBy
benchmarks/intersectionBy.bench.ts::intersectionBy::es-toolkit/intersectionBy
CodSpeed Performance Gauge
0%
50.6 µs
50.8 µs
lodash/fill
benchmarks/fill.bench.ts::fill function performance comparison::lodash/fill
CodSpeed Performance Gauge
0%
29.5 µs
29.6 µs
es-toolkit/drop
benchmarks/drop.bench.ts::drop::es-toolkit/drop
CodSpeed Performance Gauge
0%
19.4 µs
19.5 µs
es-toolkit/take
benchmarks/take.bench.ts::take::es-toolkit/take
CodSpeed Performance Gauge
0%
19.3 µs
19.4 µs
es-toolkit/meanBy
benchmarks/meanBy.bench.ts::meanBy::es-toolkit/meanBy
CodSpeed Performance Gauge
0%
37 µs
37.1 µs
es-toolkit/omit
benchmarks/omit.bench.ts::omit::es-toolkit/omit
CodSpeed Performance Gauge
0%
36.9 µs
37.1 µs
lodash/takeWhile
benchmarks/takeWhile.bench.ts::takeWhile::lodash/takeWhile
CodSpeed Performance Gauge
0%
27 µs
27.1 µs
lodash/dropRight
benchmarks/dropRight.bench.ts::dropRight::lodash/dropRight
CodSpeed Performance Gauge
0%
26 µs
26.1 µs
lodash/meanBy
benchmarks/meanBy.bench.ts::meanBy::lodash/meanBy
CodSpeed Performance Gauge
0%
34.9 µs
35.1 µs
es-toolkit/zipObject
benchmarks/zipObject.bench.ts::zipObject::es-toolkit/zipObject
CodSpeed Performance Gauge
0%
23.7 µs
23.8 µs
es-toolkit/xorBy
benchmarks/xorBy.bench.ts::xorBy::es-toolkit/xorBy
CodSpeed Performance Gauge
0%
61.5 µs
61.8 µs
lodash/dropRightWhile
benchmarks/dropRightWhile.bench.ts::dropRightWhile::lodash/dropRightWhile
CodSpeed Performance Gauge
0%
30.1 µs
30.2 µs
es-toolkit/maxBy
benchmarks/maxBy.bench.ts::maxBy::es-toolkit/maxBy
CodSpeed Performance Gauge
0%
36.7 µs
36.9 µs
lodash/partition
benchmarks/partition.bench.ts::partition::lodash/partition
CodSpeed Performance Gauge
0%
31.6 µs
31.8 µs
lodash
benchmarks/compact.bench.ts::compact::lodash
CodSpeed Performance Gauge
0%
49 µs
49.3 µs
lodash/xorBy
benchmarks/xorBy.bench.ts::xorBy::lodash/xorBy
CodSpeed Performance Gauge
0%
90.7 µs
91.2 µs
es-toolkit/dropWhile
benchmarks/dropWhile.bench.ts::dropWhile::es-toolkit/dropWhile
CodSpeed Performance Gauge
0%
23.7 µs
23.9 µs
lodash/uniqBy
benchmarks/uniqBy.bench.ts::uniqBy, small arrays::lodash/uniqBy
CodSpeed Performance Gauge
-1%
36.7 µs
36.9 µs
es-toolkit/intersection
benchmarks/intersection.bench.ts::intersection, large arrays::es-toolkit/intersection
CodSpeed Performance Gauge
-1%
7.1 ms
7.1 ms
lodash/fill
benchmarks/fill.bench.ts::fill function performance with custom start and end::lodash/fill
CodSpeed Performance Gauge
-1%
31.8 µs
32 µs
es-toolkit/sampleSize
benchmarks/sampleSize.bench.ts::sampleSize::es-toolkit/sampleSize
CodSpeed Performance Gauge
-1%
35.6 µs
35.8 µs
es-toolkit/intersection
benchmarks/intersection.bench.ts::intersection, small arrays::es-toolkit/intersection
CodSpeed Performance Gauge
-1%
24.3 µs
24.5 µs
lodash/once
benchmarks/once.bench.ts::once::lodash/once
CodSpeed Performance Gauge
-1%
23.6 µs
23.8 µs
es-toolkit/uniqBy
benchmarks/uniqBy.bench.ts::uniqBy, small arrays::es-toolkit/uniqBy
CodSpeed Performance Gauge
-1%
33.4 µs
33.6 µs
es-toolkit/sample
benchmarks/sample.bench.ts::sample::es-toolkit/sample
CodSpeed Performance Gauge
-1%
22 µs
22.2 µs
es-toolkit
benchmarks/compact.bench.ts::compact::es-toolkit
CodSpeed Performance Gauge
-1%
30 µs
30.3 µs
es-toolkit/dropRight
benchmarks/dropRight.bench.ts::dropRight::es-toolkit/dropRight
CodSpeed Performance Gauge
-1%
19.3 µs
19.6 µs
lodash/zip
benchmarks/zip.bench.ts::zip::lodash/zip
CodSpeed Performance Gauge
-2%
360.5 µs
367.3 µs
es-toolkit/omitBy
benchmarks/omitBy.bench.ts::omitBy::es-toolkit/omitBy
CodSpeed Performance Gauge
-3%
43 µs
44.4 µs
es-toolkit/unionWith
benchmarks/unionWith.bench.ts::unionWith::es-toolkit/unionWith
CodSpeed Performance Gauge
-3%
60.9 µs
63.1 µs
lodash/intersectionBy
benchmarks/intersectionBy.bench.ts::intersectionBy::lodash/intersectionBy
CodSpeed Performance Gauge
-4%
324.6 µs
338.1 µs
es-toolkit/intersectionWith
benchmarks/intersectionWith.bench.ts::intersectionWith::es-toolkit/intersectionWith
CodSpeed Performance Gauge
-5%
50.9 µs
53.5 µs

Commits

Click on a commit to change the comparison range
Base
l2hyunwoo:feature/#88
e8c1e25
-25%
[feature/#88] Add countBy references
cc3f650
11 months ago
by l2hyunwoo
-43%
Update docs/ko/reference/array/countBy.md
e8c1e25
11 months ago
by raon0211
-21%
Apply suggestions from code review
44f33b4
11 months ago
by raon0211
© 2025 CodSpeed Technology
Home Terms PrivacyDocs