PageSourceSearch

https://es-toolkit.dev/

html es-toolkit.dev collected 2026-10-03 23:11:26 UTC 17,321 bytes, 56 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" dir="ltr">
3  <head>
4    <meta charset="utf-8">
5    <meta name="viewport" content="width=device-width,initial-scale=1">
6    <title>es-toolkit</title>
7    <meta name="description" content="A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.">
8    <meta name="generator" content="VitePress v1.6.4">
9    <link rel="preload stylesheet" href="/assets/style.jlY9U5k_.css" as="style">
10    <link rel="preload stylesheet" href="/vp-icons.css" as="style">
11    
11<script type="module" src="/assets/chunks/metadata.ad6f75c7.js"></script>
11
12    
12<script type="module" src="/assets/app.COG35fJG.js"></script>
12
13    <link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14    <link rel="modulepreload" href="/assets/chunks/theme.CGguP6xO.js">
15    <link rel="modulepreload" href="/assets/chunks/framework.BBPxKbLR.js">
16    <link rel="modulepreload" href="/assets/index.md.a8XEIAZA.lean.js">
17    <link rel="icon" type="image/png" sizes="100x100" href="/favicon-100x100.png">
18    <link rel="stylesheet" href="https://static.toss.im/tps/main.css">
19    <link rel="stylesheet" href="https://static.toss.im/tps/others.css">
20    
20<script>window.va=window.va||function(){(window.vaq=window.vaq||[]).push(arguments)};</script>
20
21    
21<script src="/_vercel/insights/script.js" defer></script>
21
22    
22<script type="module">
23        import * as es from "https://cdn.jsdelivr.net/npm/es-toolkit@latest/+esm";
24        import * as esCompat from "https://cdn.jsdelivr.net/npm/es-toolkit@latest/compat/+esm";
25        window.es = es;
26        window.esCompat = esCompat;
27        setTimeout(() => {
28          console.log(
29            '%cTry es-toolkit in the console! 😃',
30            'background: #0064FF; color: white; padding: 2px 4px; border-radius: 3px;'
31          );
32          console.log(
33            '%cExample for es-toolkit',
34            'background: #0064FF; color: white; padding: 2px 4px; border-radius: 3px;'
35          );
36          console.log('%ces.at([10, 20, 30, 40, 50], [1, 3, 4]);', 'font-weight: bold;');
37          console.log('%c// [20, 40, 50]', 'font-weight: bold;');
38          console.log(
39            '%cExample for es-toolkit/compat',
40            'background: #0064FF; color: white; padding: 2px 4px; border-radius: 3px;'
41          );
42          console.log('%cesCompat.concat([1, 2, 3], [4, 5, 6]);', 'font-weight: bold;');
43          console.log('%c// [1, 2, 3, 4, 5, 6]', 'font-weight: bold;');
44        }, 1000);
45      </script>
45
46    <meta property="og:image" content="/og.png">
47    
47<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
47
48    
48<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
48
49    <link rel="canonical" href="https://es-toolkit.dev/">
50  </head>
51  <body>
52    <div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle" data-v-6aa21345 data-v-1168a8e4><a class="title" href="/" data-v-1168a8e4><!--[--><!--]--><!--[--><!--[--><!--[--><img class="VPImage dark logo" src="/logo_white.png" alt="es-toolkit" data-v-8426fc1a><!--]--><!--[--><img class="VPImage light logo" src="/logo_black.png" alt="es-toolkit" data-v-8426fc1a><!--]--><!--]--><!--]--><!----><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Home</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/intro.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Introduction</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/array/at.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Reference</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/compat/intro.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Lodash Compatibility</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/playground.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>Playground</span><!--]--></a><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-6aa21345 data-v-88af2de4 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-cf11d7a2><span class="text" data-v-cf11d7a2><span class="vpi-languages option-icon" data-v-cf11d7a2></span><!----><span class="vpi-chevron-down text-icon" data-v-cf11d7a2></span></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><div class="items" data-v-88af2de4><p class="title" data-v-88af2de4>English</p><!--[--><div class="VPMenuLink" data-v-88af2de4 data-v-35975db6><a class="VPLink link" href="/ko/" data-v-35975db6><!--[--><span data-v-35975db6>한국어</span><!--]--></a></div><div class="VPMenuLink" data-v-88af2de4 data-v-35975db6><a class="VPLink link" href="/zh_hans/" data-v-35975db6><!--[--><span data-v-35975db6>简体中文</span><!--]--></a></div><div class="VPMenuLink" data-v-88af2de4 data-v-35975db6><a class="VPLink link" href="/ja/" data-v-35975db6><!--[--><span data-v-35975db6>日本語</span><!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/toss/es-toolkit" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://www.npmjs.com/package/es-toolkit" aria-label="npm" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-npm"></span></a><a class="VPSocialLink no-icon" href="https://jsr.io/@es-toolkit/es-toolkit" aria-label="JSR" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>JSR</title><path d="M3.692 5.538v3.693H0v7.384h7.385v1.847h12.923v-3.693H24V7.385h-7.385V5.538Zm1.846 1.847h1.847v7.384H1.846v-3.692h1.846v1.846h1.846zm3.693 0h5.538V9.23h-3.692v1.846h3.692v5.538H9.231V14.77h3.692v-1.846H9.231Zm7.384 1.846h5.539v3.692h-1.846v-1.846h-1.846v5.538h-1.847z"/></svg></a><a class="VPSocialLink no-icon" href="https://discord.gg/vGXbVjP2nY" aria-label="discord" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-discord"></span></a>
52<!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><div class="group translations" data-v-bb2aa2f0><p class="trans-title" data-v-bb2aa2f0>English</p><!--[--><div class="VPMenuLink" data-v-bb2aa2f0 data-v-35975db6><a class="VPLink link" href="/ko/" data-v-35975db6><!--[--><span data-v-35975db6>한국어</span><!--]--></a></div><div class="VPMenuLink" data-v-bb2aa2f0 data-v-35975db6><a class="VPLink link" href="/zh_hans/" data-v-35975db6><!--[--><span data-v-35975db6>简体中文</span><!--]--></a></div><div class="VPMenuLink" data-v-bb2aa2f0 data-v-35975db6><a class="VPLink link" href="/ja/" data-v-35975db6><!--[--><span data-v-35975db6>日本語</span><!--]--></a></div><!--]--></div><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Dark Mode</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/toss/es-toolkit" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-github"></span></a><a class="VPSocialLink no-icon" href="https://www.npmjs.com/package/es-toolkit" aria-label="npm" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-npm"></span></a><a class="VPSocialLink no-icon" href="https://jsr.io/@es-toolkit/es-toolkit" aria-label="JSR" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>JSR</title><path d="M3.692 5.538v3.693H0v7.384h7.385v1.847h12.923v-3.693H24V7.385h-7.385V5.538Zm1.846 1.847h1.847v7.384H1.846v-3.692h1.846v1.846h1.846zm3.693 0h5.538V9.23h-3.692v1.846h3.692v5.538H9.231V14.77h3.692v-1.846H9.231Zm7.384 1.846h5.539v3.692h-1.846v-1.846h-1.846v5.538h-1.847z"/></svg></a><a class="VPSocialLink no-icon" href="https://discord.gg/vGXbVjP2nY" aria-label="discord" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-discord"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><!----><!----><div class="VPContent is-home" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPHome" data-v-1428d186 data-v-8b561e3d><!--[--><!--]--><div class="VPHero has-image VPHomeHero" data-v-8b561e3d data-v-4f9c455b><div class="container" data-v-4f9c455b><div class="main" data-v-4f9c455b><!--[--><!--]--><!--[--><h1 class="heading" data-v-4f9c455b><span class="name clip" data-v-4f9c455b>es-toolkit</span><span class="text" data-v-4f9c455b>State-of-the-art JavaScript utility library</span></h1><!----><!--]--><!--[--><!--]--><div class="actions" data-v-4f9c455b><!--[--><div class="action" data-v-4f9c455b><a class="VPButton medium brand" href="/intro.html" data-v-4f9c455b data-v-fa7799d5>About es-toolkit</a></div><div class="action" data-v-4f9c455b><a class="VPButton medium alt" href="/reference/array/at.html" data-v-4f9c455b data-v-fa7799d5>Reference</a></div><div class="action" data-v-4f9c455b><a class="VPButton medium alt" href="/usage.html" data-v-4f9c455b data-v-fa7799d5>Usage</a></div><!--]--></div><!--[--><!--]--></div><div class="image" data-v-4f9c455b><div class="image-container" data-v-4f9c455b><div class="image-bg" data-v-4f9c455b></div><!--[--><!--[--><img class="VPImage image-src" loading="eager" fetchpriority="high" decoding="async" src="/hero.webp" alt data-v-8426fc1a><!--]--><!--]--></div></div></div></div><!--[--><!--]--><!--[--><!--]--><div class="VPFeatures VPHomeFeatures" data-v-8b561e3d data-v-a6181336><div class="container" data-v-a6181336><div class="items" data-v-a6181336><!--[--><div class="grid-4 item" data-v-a6181336><div class="VPLink no-icon VPFeature" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Best performance</h2><p class="details" data-v-a3976bdc>es-toolkit delivers 2-3× better performance in modern JavaScript runtimes compared to other libraries.</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-a6181336><div class="VPLink no-icon VPFeature" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Small bundle footprint</h2><p class="details" data-v-a3976bdc>es-toolkit ships up to 97% less JavaScript code compared to other alternative libraries.</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-a6181336><a class="VPLink link no-icon VPFeature" href="/compat/intro.html" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Seamless Lodash replacement</h2><p class="details" data-v-a3976bdc>es-toolkit offers a complete compatibility layer to seamlessly replace Lodash.</p><!----></article><!--]--></a></div><div class="grid-4 item" data-v-a6181336><div class="VPLink no-icon VPFeature" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Modern implementation</h2><p class="details" data-v-a3976bdc>es-toolkit fully leverages modern JavaScript APIs for straightforward and error-free implementation.</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-a6181336><div class="VPLink no-icon VPFeature" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Robust types</h2><p class="details" data-v-a3976bdc>es-toolkit offers simple yet robust types for all functions.</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-a6181336><div class="VPLink no-icon VPFeature" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Widely adopted</h2><p class="details" data-v-a3976bdc>es-toolkit is trusted and used by popular open-source projects like Storybook, Recharts, ink, MUI, and CKEditor.</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-a6181336><div class="VPLink no-icon VPFeature" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Battle-tested</h2><p class="details" data-v-a3976bdc>
52es-toolkit has 100% test coverage, ensuring maximum robustness.</p><!----></article><!--]--></div></div><div class="grid-4 item" data-v-a6181336><div class="VPLink no-icon VPFeature" data-v-a6181336 data-v-a3976bdc><!--[--><article class="box" data-v-a3976bdc><!----><h2 class="title" data-v-a3976bdc>Comprehensive runtime support</h2><p class="details" data-v-a3976bdc>es-toolkit supports all JavaScript environments, including Node.js, Deno, Bun, and browsers.</p><!----></article><!--]--></div></div><!--]--></div></div></div><!--[--><!--]--><div class="vp-doc container" style="" data-v-8b561e3d data-v-8e2d4988><!--[--><div style="position:relative;" data-v-8b561e3d><div><div style="display:none;" hidden="true" aria-hidden="true">Are you an LLM? View /llms.txt for optimized Markdown documentation, or /llms-full.txt for full documentation bundle</div></div></div><!--]--></div></div></div><footer class="VPFooter" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2026 Viva Republica, Inc.</p></div></footer><!--[--><!----><!--]--></div></div>
53    
54    
55  </body>
56</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.