1.0.4 • Published 2 months ago
nd-jscp v1.0.4
nd-jscp
- only work in nodejs
- expose v8::Object::Clone
- its slightly faster than Array.prototype.slice(0) AND Object.assign({},)
install
- npm install nd-jscp
splitted
usage
const {jscp } = require("nd-jscp");
example
const {deepStrictEqual,notStrictEqual} = require("assert");
function tst0(j) {
if(Array.isArray(j)) {
return(j.slice())
} else {
return(Object.assign({},j))
}
}
const {sync} = require("nv-facutil-simple-test");
var j = {a:100,b:[1,{x:2},3,true,false],c:null}
console.log(jscp(j));
notStrictEqual(jscp(j),j);
deepStrictEqual(jscp(j),j);
sync(10000000,tst0,j);
/*
> sync(10000000,tst0,j);
{ rounds: 10000000, f: [Function: tst0], costed: 996.1195729970932 }
>
*/
sync(10000000,jscp,j);
/*
> sync(10000000,jscp,j);
{
rounds: 10000000,
f: [Function (anonymous)],
costed: 673.1769989728928 // slightly faster
}
>
*/
var a = [{a:100,b:[1,{x:2},3,true,false],c:null},{a:100,b:[1,{x:2},3,true,false],c:null},{a:100,b:[1,{x:2},3,true,false],c:null}]
console.log(jscp(a));
notStrictEqual(jscp(a),a);
deepStrictEqual(jscp(a),a);
METHODS
APIS
LICENSE
- ISC