deep copy data
Caution
This package is no longer maintained. For most deep cloning needs, consider using the native structuredClone() function, which is now available in modern JavaScript environments.
$ npm install deepcopyconst deepcopy = require('deepcopy');import * as deepcopy from 'deepcopy';<script src="deepcopy.min.js"></script>basic usage:
const src = {
desserts: [
{ name: 'cake' },
{ name: 'ice cream' },
{ name: 'pudding' }
]
};
const dist = deepcopy(src);
src.desserts = null;
console.log(src); // { desserts: null }
console.log(dist); // { desserts: [ { name: 'cake' }, { name: 'ice cream' }, { name: 'pudding' } ] }customize deepcopy:
function MyClass(id) {
this._id = id;
}
const src = {
myClasses: [
new MyClass(1),
new MyClass(2),
new MyClass(3)
]
};
const dest = deepcopy(base, {
customizer(value) {
if (target.constructor === MyClass) {
return new MyClass(target._id);
}
}
});
src.myClasses = null;
console.log(src); // { myClasses: null }
console.log(dest); // { myClasses: [ MyClass { _id: 1 }, MyClass { _id: 2 }, MyClass { _id: 3 } ] }value*- target value
optionsObject|FunctionObject- pass optionsFunction- use as customize function
return*- copied value
| type | operation | |
|---|---|---|
| ArrayBuffer | deep copy | |
| Boolean | deep copy | |
| Buffer | deep copy | node.js only |
| DataView | deep copy | |
| Date | deep copy | |
| Number | deep copy | |
| RegExp | deep copy | |
| String | deep copy | |
| Float32Array | deep copy | |
| Float64Array | deep copy | |
| Int16Array | deep copy | |
| Int32Array | deep copy | |
| Int8Array | deep copy | |
| Uint16Array | deep copy | |
| Uint32Array | deep copy | |
| Uint8Array | deep copy | |
| Uint8ClampedArray | deep copy | |
| boolean | deep copy | |
| null | deep copy | |
| number | deep copy | |
| string | deep copy | |
| symbol | deep copy | |
| undefined | deep copy | |
| Arguments | deep copy | recursively, copy as Array |
| Array | deep copy | recursively |
| Map | deep copy | recursively |
| Object | deep copy | recursively |
| Set | deep copy | recursively |
| Array Iterator | shallow copy | |
| Map Iterator | shallow copy | |
| Promise | shallow copy | |
| Set Iterator | shallow copy | |
| String Iterator | shallow copy | |
| function | shallow copy | |
| global | shallow copy | window, global, self, etc. |
| WeakMap | shallow copy | |
| WeakSet | shallow copy |
The MIT license.