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

Benchmarks

Failed

lodash/isNilRegression
benchmarks/isNil.bench.ts::isNil::lodash/isNil
CodSpeed Performance Gauge
-89%
35.3 µs319.7 µs
lodash/xorRegression
benchmarks/xor.bench.ts::xor::lodash/xor
CodSpeed Performance Gauge
-36%
255.6 µs397.5 µs
es-toolkit/rangeRegression
benchmarks/range.bench.ts::range::es-toolkit/range
CodSpeed Performance Gauge
-19%
39.2 µs48.3 µs
lodash/unionWithRegression
benchmarks/unionWith.bench.ts::unionWith::lodash/unionWith
CodSpeed Performance Gauge
-65%
84.8 µs239.8 µs
lodash/rangeRegression
benchmarks/range.bench.ts::range::lodash/range
CodSpeed Performance Gauge
-25%
33.4 µs44.2 µs
lodash/differenceRegression
benchmarks/difference.bench.ts::difference::lodash/difference
CodSpeed Performance Gauge
-83%
56.7 µs337.1 µs
lodash/intersectionWithRegression
benchmarks/intersectionWith.bench.ts::intersectionWith::lodash/intersectionWith
CodSpeed Performance Gauge
-65%
92 µs263.2 µs

Improved

lodash/unionBy
benchmarks/unionBy.bench.ts::unionBy::lodash/unionBy
CodSpeed Performance Gauge
×3.1
232.7 µs75.4 µs
es-toolkit/countBy
benchmarks/countBy.bench.ts::countBy::es-toolkit/countBy
CodSpeed Performance Gauge
+26%
70.2 µs55.5 µs
es-toolkit/uniqWith
benchmarks/uniqWith.bench.ts::uniqWith, small arrays::es-toolkit/uniqWith
CodSpeed Performance Gauge
+16%
44.4 µs38.4 µs

Passed

lodash/uniqWith
benchmarks/uniqWith.bench.ts::uniqWith, small arrays::lodash/uniqWith
CodSpeed Performance Gauge
+4%
37.7 µs36.4 µs
es-toolkit/clamp
benchmarks/clamp.bench.ts::clamp::es-toolkit/clamp
CodSpeed Performance Gauge
+1%
20.8 µs20.6 µs
es-toolkit/takeRight
benchmarks/takeRight.bench.ts::takeRight::es-toolkit/takeRight
CodSpeed Performance Gauge
+1%
19.8 µs19.6 µs
lodash/mean
benchmarks/mean.bench.ts::mean::lodash/mean
CodSpeed Performance Gauge
+1%
23.5 µs23.2 µs
es-toolkit/uniq
benchmarks/uniq.bench.ts::uniq::es-toolkit/uniq
CodSpeed Performance Gauge
+1%
23.3 µs23.1 µs
es-toolkit/round
benchmarks/round.bench.ts::round::es-toolkit/round
CodSpeed Performance Gauge
+1%
21.5 µs21.4 µs
es-toolkit/takeRightWhile
benchmarks/takeRightWhile.bench.ts::takeRightWhile::es-toolkit/takeRightWhile
CodSpeed Performance Gauge
+1%
22.7 µs22.5 µs
lodash/takeRight
benchmarks/takeRight.bench.ts::takeRight::lodash/takeRight
CodSpeed Performance Gauge
+1%
26.1 µs26 µs
lodash/uniq
benchmarks/uniq.bench.ts::uniq::lodash/uniq
CodSpeed Performance Gauge
+1%
28.4 µs28.3 µs
es-toolkit/minBy
benchmarks/minBy.bench.ts::minBy::es-toolkit/minBy
CodSpeed Performance Gauge
0%
36.6 µs36.4 µs
lodash/sample
benchmarks/sample.bench.ts::sample::lodash/sample
CodSpeed Performance Gauge
0%
23 µs22.9 µs
es-toolkit/sum
benchmarks/sum.bench.ts::sum::es-toolkit/sum
CodSpeed Performance Gauge
0%
21.6 µs21.5 µs
es-toolkit/partition
benchmarks/partition.bench.ts::partition::es-toolkit/partition
CodSpeed Performance Gauge
0%
35.2 µs35.1 µs
es-toolkit/union
benchmarks/union.bench.ts::union::es-toolkit/union
CodSpeed Performance Gauge
0%
32.5 µs32.4 µs
es-toolkit/once
benchmarks/once.bench.ts::once::es-toolkit/once
CodSpeed Performance Gauge
0%
17.3 µs17.2 µs
lodash/drop
benchmarks/drop.bench.ts::drop::lodash/drop
CodSpeed Performance Gauge
0%
26.2 µs26.1 µs
es-toolkit/difference
benchmarks/difference.bench.ts::difference::es-toolkit/difference
CodSpeed Performance Gauge
0%
26.6 µs26.5 µs
es-toolkit/uniqBy
benchmarks/uniqBy.bench.ts::uniqBy, large arrays::es-toolkit/uniqBy
CodSpeed Performance Gauge
0%
17.4 ms17.3 ms
es-toolkit/isNil
benchmarks/isNil.bench.ts::isNil::es-toolkit/isNil
CodSpeed Performance Gauge
0%
17.9 µs17.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 µs27.6 µs
lodash/uniqBy
benchmarks/uniqBy.bench.ts::uniqBy, large arrays::lodash/uniqBy
CodSpeed Performance Gauge
0%
16.7 ms16.7 ms
lodash/countBy
benchmarks/countBy.bench.ts::countBy::lodash/countBy
CodSpeed Performance Gauge
0%
221.7 µs221.1 µs
lodash/clamp
benchmarks/clamp.bench.ts::clamp::lodash/clamp
CodSpeed Performance Gauge
0%
21.9 µs21.8 µs
lodash/minBy
benchmarks/minBy.bench.ts::minBy::lodash/minBy
CodSpeed Performance Gauge
0%
38.2 µs38.1 µs
es-toolkit/mean
benchmarks/mean.bench.ts::mean::es-toolkit/mean
CodSpeed Performance Gauge
0%
22.8 µs22.8 µs
lodash/omitBy
benchmarks/omitBy.bench.ts::omitBy::lodash/omitBy
CodSpeed Performance Gauge
0%
79.5 µs79.3 µs
lodash/take
benchmarks/take.bench.ts::take::lodash/take
CodSpeed Performance Gauge
0%
26 µs26 µs
es-toolkit/shuffle
benchmarks/shuffle.bench.ts::shuffle::es-toolkit/shuffle
CodSpeed Performance Gauge
0%
41.3 µs41.2 µs
lodash/keyBy
benchmarks/keyBy.bench.ts::keyBy::lodash/keyBy
CodSpeed Performance Gauge
0%
58.4 µs58.3 µs
es-toolkit/differenceBy
benchmarks/differenceBy.bench.ts::differenceBy::es-toolkit/differenceBy
CodSpeed Performance Gauge
0%
31 µs30.9 µs
lodash/pick
benchmarks/pick.bench.ts::pick::lodash/pick
CodSpeed Performance Gauge
0%
86.5 µs86.3 µs
lodash/chunk
benchmarks/chunk.bench.ts::chunk::lodash/chunk
CodSpeed Performance Gauge
0%
29.1 µs29.1 µs
es-toolkit/chunk
benchmarks/chunk.bench.ts::chunk::es-toolkit/chunk
CodSpeed Performance Gauge
0%
28.1 µs28.1 µs
es-toolkit/fill
benchmarks/fill.bench.ts::fill function performance comparison::es-toolkit/fill
CodSpeed Performance Gauge
0%
25.8 µs25.8 µs
lodash/intersection
benchmarks/intersection.bench.ts::intersection, small arrays::lodash/intersection
CodSpeed Performance Gauge
0%
70.3 µs70.2 µs
es-toolkit/dropRightWhile
benchmarks/dropRightWhile.bench.ts::dropRightWhile::es-toolkit/dropRightWhile
CodSpeed Performance Gauge
0%
26.3 µs26.3 µs
lodash/takeRightWhile
benchmarks/takeRightWhile.bench.ts::takeRightWhile::lodash/takeRightWhile
CodSpeed Performance Gauge
0%
29.5 µs29.5 µs
es-toolkit/unionBy
benchmarks/unionBy.bench.ts::unionBy::es-toolkit/unionBy
CodSpeed Performance Gauge
0%
47.4 µs47.4 µs
es-toolkit/keyBy
benchmarks/keyBy.bench.ts::keyBy::es-toolkit/keyBy
CodSpeed Performance Gauge
0%
51.4 µs51.4 µs
lodash/groupBy
benchmarks/groupBy.bench.ts::groupBy::lodash/groupBy
CodSpeed Performance Gauge
0%
61.5 µs61.5 µs
lodash/dropWhile
benchmarks/dropWhile.bench.ts::dropWhile::lodash/dropWhile
CodSpeed Performance Gauge
0%
29.7 µs29.7 µs
lodash/intersection
benchmarks/intersection.bench.ts::intersection, large arrays::lodash/intersection
CodSpeed Performance Gauge
0%
18.5 ms18.5 ms
es-toolkit/pick
benchmarks/pick.bench.ts::pick::es-toolkit/pick
CodSpeed Performance Gauge
0%
30.8 µs30.8 µs
lodash/zipWith
benchmarks/zipWith.bench.ts::zipWith::lodash/zipWith
CodSpeed Performance Gauge
0%
260.2 µs260.2 µs
lodash/sampleSize
benchmarks/sampleSize.bench.ts::sampleSize::lodash/sampleSize
CodSpeed Performance Gauge
0%
37.3 µs37.3 µs
lodash/round
benchmarks/round.bench.ts::round::lodash/round
CodSpeed Performance Gauge
0%
40.5 µs40.5 µs
lodash/differenceWith
benchmarks/differenceWith.bench.ts::differenceWith::lodash/differenceWith
CodSpeed Performance Gauge
0%
69.4 µs69.4 µs
lodash/differenceBy
benchmarks/differenceBy.bench.ts::differenceBy::lodash/differenceBy
CodSpeed Performance Gauge
0%
70.7 µs70.7 µs
lodash/union
benchmarks/union.bench.ts::union::lodash/union
CodSpeed Performance Gauge
0%
75.9 µs75.9 µs
lodash/zipObject
benchmarks/zipObject.bench.ts::zipObject::lodash/zipObject
CodSpeed Performance Gauge
0%
32.4 µs32.4 µs
es-toolkit/groupBy
benchmarks/groupBy.bench.ts::groupBy::es-toolkit/groupBy
CodSpeed Performance Gauge
0%
55.3 µs55.3 µs
es-toolkit/differenceWith
benchmarks/differenceWith.bench.ts::differenceWith::es-toolkit/differenceWith
CodSpeed Performance Gauge
0%
31.6 µs31.7 µs
es-toolkit/takeWhile
benchmarks/takeWhile.bench.ts::takeWhile::es-toolkit/takeWhile
CodSpeed Performance Gauge
0%
22.6 µs22.6 µs
es-toolkit/xor
benchmarks/xor.bench.ts::xor::es-toolkit/xor
CodSpeed Performance Gauge
0%
57 µs57.1 µs
es-toolkit/uniqWith
benchmarks/uniqWith.bench.ts::uniqWith, large arrays::es-toolkit/uniqWith
CodSpeed Performance Gauge
0%
7.4 s7.4 s
lodash/uniqWith
benchmarks/uniqWith.bench.ts::uniqWith, large arrays::lodash/uniqWith
CodSpeed Performance Gauge
0%
7.1 s7.1 s
es-toolkit/random
benchmarks/random.bench.ts::random::es-toolkit/random
CodSpeed Performance Gauge
0%
19.8 µs19.8 µs
es-toolkit/zip
benchmarks/zip.bench.ts::zip::es-toolkit/zip
CodSpeed Performance Gauge
0%
37.9 µs38 µs
lodash/shuffle
benchmarks/shuffle.bench.ts::shuffle::lodash/shuffle
CodSpeed Performance Gauge
0%
42.8 µs42.8 µs
es-toolkit/xorWith
benchmarks/xorWith.bench.ts::xorWith::es-toolkit/xorWith
CodSpeed Performance Gauge
0%
69 µs69.1 µs
lodash/random
benchmarks/random.bench.ts::random::lodash/random
CodSpeed Performance Gauge
0%
33.3 µs33.4 µs
lodash/maxBy
benchmarks/maxBy.bench.ts::maxBy::lodash/maxBy
CodSpeed Performance Gauge
0%
38.3 µs38.4 µs
lodash/omit
benchmarks/omit.bench.ts::omit::lodash/omit
CodSpeed Performance Gauge
0%
91.4 µs91.6 µs
lodash/xorWith
benchmarks/xorWith.bench.ts::xorWith::lodash/xorWith
CodSpeed Performance Gauge
0%
103.4 µs103.6 µs
es-toolkit/zipWith
benchmarks/zipWith.bench.ts::zipWith::es-toolkit/zipWith
CodSpeed Performance Gauge
0%
58.6 µs58.8 µs
lodash/sum
benchmarks/sum.bench.ts::sum::lodash/sum
CodSpeed Performance Gauge
0%
22.6 µs22.7 µs
es-toolkit/intersectionBy
benchmarks/intersectionBy.bench.ts::intersectionBy::es-toolkit/intersectionBy
CodSpeed Performance Gauge
0%
50.6 µs50.8 µs
lodash/fill
benchmarks/fill.bench.ts::fill function performance comparison::lodash/fill
CodSpeed Performance Gauge
0%
29.5 µs29.6 µs
es-toolkit/drop
benchmarks/drop.bench.ts::drop::es-toolkit/drop
CodSpeed Performance Gauge
0%
19.4 µs19.5 µs
es-toolkit/take
benchmarks/take.bench.ts::take::es-toolkit/take
CodSpeed Performance Gauge
0%
19.3 µs19.4 µs
es-toolkit/meanBy
benchmarks/meanBy.bench.ts::meanBy::es-toolkit/meanBy
CodSpeed Performance Gauge
0%
37 µs37.1 µs
es-toolkit/omit
benchmarks/omit.bench.ts::omit::es-toolkit/omit
CodSpeed Performance Gauge
0%
36.9 µs37.1 µs
lodash/takeWhile
benchmarks/takeWhile.bench.ts::takeWhile::lodash/takeWhile
CodSpeed Performance Gauge
0%
27 µs27.1 µs
lodash/dropRight
benchmarks/dropRight.bench.ts::dropRight::lodash/dropRight
CodSpeed Performance Gauge
0%
26 µs26.1 µs
lodash/meanBy
benchmarks/meanBy.bench.ts::meanBy::lodash/meanBy
CodSpeed Performance Gauge
0%
34.9 µs35.1 µs
es-toolkit/zipObject
benchmarks/zipObject.bench.ts::zipObject::es-toolkit/zipObject
CodSpeed Performance Gauge
0%
23.7 µs23.8 µs
es-toolkit/xorBy
benchmarks/xorBy.bench.ts::xorBy::es-toolkit/xorBy
CodSpeed Performance Gauge
0%
61.5 µs61.8 µs
lodash/dropRightWhile
benchmarks/dropRightWhile.bench.ts::dropRightWhile::lodash/dropRightWhile
CodSpeed Performance Gauge
0%
30.1 µs30.2 µs
es-toolkit/maxBy
benchmarks/maxBy.bench.ts::maxBy::es-toolkit/maxBy
CodSpeed Performance Gauge
0%
36.7 µs36.9 µs
lodash/partition
benchmarks/partition.bench.ts::partition::lodash/partition
CodSpeed Performance Gauge
0%
31.6 µs31.8 µs
lodash
benchmarks/compact.bench.ts::compact::lodash
CodSpeed Performance Gauge
0%
49 µs49.3 µs
lodash/xorBy
benchmarks/xorBy.bench.ts::xorBy::lodash/xorBy
CodSpeed Performance Gauge
0%
90.7 µs91.2 µs
es-toolkit/dropWhile
benchmarks/dropWhile.bench.ts::dropWhile::es-toolkit/dropWhile
CodSpeed Performance Gauge
0%
23.7 µs23.9 µs
lodash/uniqBy
benchmarks/uniqBy.bench.ts::uniqBy, small arrays::lodash/uniqBy
CodSpeed Performance Gauge
-1%
36.7 µs36.9 µs
es-toolkit/intersection
benchmarks/intersection.bench.ts::intersection, large arrays::es-toolkit/intersection
CodSpeed Performance Gauge
-1%
7.1 ms7.1 ms
lodash/fill
benchmarks/fill.bench.ts::fill function performance with custom start and end::lodash/fill
CodSpeed Performance Gauge
-1%
31.8 µs32 µs
es-toolkit/sampleSize
benchmarks/sampleSize.bench.ts::sampleSize::es-toolkit/sampleSize
CodSpeed Performance Gauge
-1%
35.6 µs35.8 µs
es-toolkit/intersection
benchmarks/intersection.bench.ts::intersection, small arrays::es-toolkit/intersection
CodSpeed Performance Gauge
-1%
24.3 µs24.5 µs
lodash/once
benchmarks/once.bench.ts::once::lodash/once
CodSpeed Performance Gauge
-1%
23.6 µs23.8 µs
es-toolkit/uniqBy
benchmarks/uniqBy.bench.ts::uniqBy, small arrays::es-toolkit/uniqBy
CodSpeed Performance Gauge
-1%
33.4 µs33.6 µs
es-toolkit/sample
benchmarks/sample.bench.ts::sample::es-toolkit/sample
CodSpeed Performance Gauge
-1%
22 µs22.2 µs
es-toolkit
benchmarks/compact.bench.ts::compact::es-toolkit
CodSpeed Performance Gauge
-1%
30 µs30.3 µs
es-toolkit/dropRight
benchmarks/dropRight.bench.ts::dropRight::es-toolkit/dropRight
CodSpeed Performance Gauge
-1%
19.3 µs19.6 µs
lodash/zip
benchmarks/zip.bench.ts::zip::lodash/zip
CodSpeed Performance Gauge
-2%
360.5 µs367.3 µs
es-toolkit/omitBy
benchmarks/omitBy.bench.ts::omitBy::es-toolkit/omitBy
CodSpeed Performance Gauge
-3%
43 µs44.4 µs
es-toolkit/unionWith
benchmarks/unionWith.bench.ts::unionWith::es-toolkit/unionWith
CodSpeed Performance Gauge
-3%
60.9 µs63.1 µs
lodash/intersectionBy
benchmarks/intersectionBy.bench.ts::intersectionBy::lodash/intersectionBy
CodSpeed Performance Gauge
-4%
324.6 µs338.1 µs
es-toolkit/intersectionWith
benchmarks/intersectionWith.bench.ts::intersectionWith::es-toolkit/intersectionWith
CodSpeed Performance Gauge
-5%
50.9 µs53.5 µs

Commits

Click on a commit to change the comparison range
Base
l2hyunwoo:feature/#88
e8c1e25
-24.58%
[feature/#88] Add countBy references
cc3f650
1 year ago
by l2hyunwoo
-43.05%
Update docs/ko/reference/array/countBy.md
e8c1e25
1 year ago
by raon0211
-21.34%
Apply suggestions from code review
44f33b4
1 year ago
by raon0211
© 2025 CodSpeed Technology
Home Terms Privacy Docs