es-toolkit/benchmarks/flatten.bench.ts
Gromit (전민재) 7c824629ee
feat(flatten): add flatten (#147)
* feat(flatten): add faltten (#137)

* fix: fix lint

* fix: fix test code description

* test(flatten): add test case

* Update docs/ko/reference/array/flatten.md

* Update docs/ko/reference/array/flatten.md

* Update docs/ko/reference/array/flatten.md

* Update docs/reference/array/flatten.md

---------

Co-authored-by: Sojin Park <raon0211@gmail.com>
2024-07-10 09:49:26 +09:00

28 lines
665 B
TypeScript

import { bench, describe } from 'vitest';
import { flatten as flattenToolkit } from 'es-toolkit';
import { flattenDepth as flattenDepthLodash } from 'lodash';
const createNestedArray = (values: any[]) => {
if (values.length === 0) {
return [];
}
const [first, ...rest] = values;
return [first, createNestedArray(rest)];
};
describe('flatten', () => {
const arr = createNestedArray(Array.from({ length: 30 }, (_, index) => index));
bench('es-toolkit/flatten', () => {
flattenToolkit(arr, 30);
});
bench('lodash/flattenDepth', () => {
flattenDepthLodash(arr, 30);
});
bench('js built-in/flat', () => {
arr.flat(30);
});
});