deepcopy
v2.1.0
Published
deep copy data
Downloads
1,084,294
Readme
deepcopy.js
deep copy data
Installation
npm
$ npm install deepcopy
Usage
node.js
JavaScript
const deepcopy = require('deepcopy');
TypeScript
import * as deepcopy from 'deepcopy';
browser
<script src="deepcopy.min.js"></script>
Example
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 } ] }
Functions
deepcopy(value[, options])
value
*
- target value
options
Object|Function
Object
- pass optionsFunction
- use as customize function
return
*
- copied value
Supported types and copy operation
|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| |
Contributors
License
The MIT license.