fastest-deep-clone-json
v1.0.4
Published
Fastest way to deep-clone JSON objects
Downloads
8
Maintainers
Readme
This is the fastest deep-clone implementation for JSON objects - faster than structuredClone
, JSON.parse(JSON.stringify(obj))
and other implementations.
This package is ESM-only.
- Dependencies: 0
- Bundle size (minified and gzipped): 316 Bytes
- Module count: 1
It avoids recursion in favor of a stack, in order to keep the memory usage low.
Performance comparison
| Method | Ops/sec | |-------------------------------------------------------------------------------------------------------------------|-----------| | This package (iterative deep clone) | 3.560.061 | | recursive deep clone | 3.476.448 | | fastest-json-copy v2 | 1.523.427 | | JSON.stringify | 1.465.516 | | fastest-json-copy v1 | 1.320.249 | | jsondiffpatch.clone | 1.245.459 | | structuredClone | 789.100 |
Run it yourself: https://www.measurethat.net/Benchmarks/ShowResult/534839 (this package is deepCopyObjectIterative
in that comparison)
Installation
pnpm install fastest-deep-clone-json
or
npm install fastest-deep-clone-json
Usage
import { deepCloneJson } from 'fastest-deep-clone-json';
const obj = { a: 1, b: { c: 2 } };
const cloned = deepCloneJson(obj);
console.log(cloned); // { a: 1, b: { c: 2 } }
This library will only work with JSON-serialized objects. It does not handle data types like Date
, Map
, Set
, BigInt
, Symbol
, Function
etc etc. The goal is to provide the fastest deep-clone implementation for JSON objects.