Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
cloneDeep
(version: 0)
Comparing performance of:
cloneDeep1 vs deepClone2
Created:
5 years ago
by:
Guest
Jump to the latest result
Tests:
cloneDeep1
const obj = { "profile": { "name": "profile", "value": "Refinance 350k", "type": "hidden", "option_value_override": true, "options": { "Buying Next Home 200k": { "value": "Buying Next Home 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Buying Next Home 350k": { "value": "Buying Next Home 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Buying Next Home 500k": { "value": "Buying Next Home 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Buying Next Home 750k": { "value": "Buying Next Home 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Refinance 200k": { "value": "Refinance 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Refinance 350k": { "value": "Refinance 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Refinance 500k": { "value": "Refinance 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Refinance 750k": { "value": "Refinance 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Line of Credit 200k": { "value": "Line of Credit 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Line of Credit" } ] }, "Line of Credit 350k": { "value": "Line of Credit 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Line of Credit" } ] }, "Line of Credit 500k": { "value": "Line of Credit 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Line of Credit" } ] }, "Line of Credit 750k": { "value": "Line of Credit 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Line of Credit" } ] }, "Investor 200k": { "value": "Investor 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Investor 350k": { "value": "Investor 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Investor 500k": { "value": "Investor 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Investor 750k": { "value": "Investor 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Investor - Interest Only 200k": { "value": "Investor - Interest Only 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Investor - Interest Only 350k": { "value": "Investor - Interest Only 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Investor - Interest Only 500k": { "value": "Investor - Interest Only 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Investor - Interest Only 750k": { "value": "Investor - Interest Only 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "First Home Buyer 200k": { "value": "First Home Buyer 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "First Home Buyer 350k": { "value": "First Home Buyer 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "First Home Buyer 500k": { "value": "First Home Buyer 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "First Home Buyer 750k": { "value": "First Home Buyer 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Construction 200k": { "value": "Construction 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Construction 350k": { "value": "Construction 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Construction 500k": { "value": "Construction 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Construction 750k": { "value": "Construction 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Buying Next Home - Interest Only 200k": { "value": "Buying Next Home - Interest Only 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Buying Next Home - Interest Only 350k": { "value": "Buying Next Home - Interest Only 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Buying Next Home - Interest Only 500k": { "value": "Buying Next Home - Interest Only 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Buying Next Home - Interest Only 750k": { "value": "Buying Next Home - Interest Only 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Refinance - Interest Only 200k": { "value": "Refinance - Interest Only 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Refinance - Interest Only 350k": { "value": "Refinance - Interest Only 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Refinance - Interest Only 500k": { "value": "Refinance - Interest Only 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Refinance - Interest Only 750k": { "value": "Refinance - Interest Only 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "First Home Buyer - Interest Only 200k": { "value": "First Home Buyer - Interest Only 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "First Home Buyer - Interest Only 350k": { "value": "First Home Buyer - Interest Only 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "First Home Buyer - Interest Only 500k": { "value": "First Home Buyer - Interest Only 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "First Home Buyer - Interest Only 750k": { "value": "First Home Buyer - Interest Only 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Construction - Interest Only 200k": { "value": "Construction - Interest Only 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Construction - Interest Only 350k": { "value": "Construction - Interest Only 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Construction - Interest Only 500k": { "value": "Construction - Interest Only 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Construction - Interest Only 750k": { "value": "Construction - Interest Only 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] } }, "text": "Refinance 350k" }, "amount": { "name": "Loan amount", "value": "350000", "autocomma": true, "classes": "form-group col-sm-6 simplified-col-sm-3", "ng_classes": "form-group col-xs-12 col-sm-4 col-md-3 order-md-1", "format": "currency", "validate": { "required": true, "numeric": true, "minNumber": 50000, "maxNumber": 1000000000 }, "error_message": "Loan amount must only be numbers with commas and have a value greater than 50,000.", "round_values": true, "natural_selector_text": { "text_after": "loan", "type": "amount" } }, "purpose": { "name": "Loan purpose", "text": "Refinance", "value": "Refinance", "classes": "form-group col-sm-6 simplified-col-sm-3", "ng_classes": "form-group col-xs-12 col-sm-4 col-md-3 order-md-2", "options": { "Buying Next Home": "Buying Next Home", "Refinance": "Refinance", "Line of Credit": "Line of Credit", "Investing": "Investing", "First Home Buyer": "First Home Buyer", "Construction": "Construction" }, "natural_selector_text": { "text_before": " for" } }, "repayment_type": { "name": "Repayment type", "value": "P+I", "classes": "form-group col-sm-6 simplified-hidden", "ng_classes": "form-group hidden", "exclude_prefill": true, "options": { "Principal & Interest": "P+I", "Interest only": "IO" }, "natural_selector_text": { "text_before": "with a repayment type of" }, "text": "Principal & Interest" }, "state": { "name": "State", "value": "NSW", "classes": "form-group col-sm-6 simplified-col-sm-2", "ng_classes": "form-group col-xs-12 col-sm-4 col-md-3 order-md-3", "use_geoip": "state", "options": [ "ACT", "NSW", "NT", "QLD", "SA", "TAS", "VIC", "WA" ], "natural_selector_text": { "text_before": "in" } }, "Loan Type": { "name": "Interest types", "value": "Variable", "exclude_prefill": true, "classes": "form-group col-sm-12 inline simplified-hidden", "ng_classes": "form-group hidden", "type": "checkbox", "options": { "Variable": "Variable", "1 year fixed": "Fixed Loan 1yr", "2 years fixed": "Fixed Loan 2yr", "3 years fixed": "Fixed Loan 3yr", "5 years fixed": "Fixed Loan 5yr" }, "validate": { "required": true }, "error_message": "One or more interest type is needed before comparing Home Loans", "text": "Variable" }, "provider_link": { "name": "provider_link", "classes": "col-sm-12 text-center inline inline-label provider-link", "ng_classes": "col-xs-12 col-sm-8 col-md-12 text-left inline inline-label provider-link order-md-5", "facet_preselect": true, "text_override": false, "type": "checkbox", "value": "Yes, just compare results with links", "options": { "Just compare loans which link to a loan provider": "Yes, just compare results with links" }, "text": "Just compare loans which link to a loan provider" }, "Compare": { "name": "Compare", "type": "button", "ng_classes": "col-xs-12 col-sm-4 col-md-3 order-md-4", "info_link": { "text": "No contact details required ☺" } } }; function clone(item) { if (!item) { return item; } // null, undefined values check var types = [ Number, String, Boolean ], result; // normalizing primitives if someone did new String('aaa'), or new Number('444'); types.forEach(function(type) { if (item instanceof type) { result = type( item ); } }); if (typeof result == "undefined") { if (Object.prototype.toString.call( item ) === "[object Array]") { result = []; item.forEach(function(child, index, array) { result[index] = clone( child ); }); } else if (typeof item == "object") { // testing that this is DOM if (item.nodeType && typeof item.cloneNode == "function") { result = item.cloneNode( true ); } else if (!item.prototype) { // check that this is a literal if (item instanceof Date) { result = new Date(item); } else { // it is an object literal result = {}; for (var i in item) { result[i] = clone( item[i] ); } } } else { // depending what you would like here, // just keep the reference, or create new object if (false && item.constructor) { // would not advice to do that, reason? Read below result = new item.constructor(); } else { result = item; } } } else { result = item; } } return result; } clone(obj);
deepClone2
const obj = { "profile": { "name": "profile", "value": "Refinance 350k", "type": "hidden", "option_value_override": true, "options": { "Buying Next Home 200k": { "value": "Buying Next Home 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Buying Next Home 350k": { "value": "Buying Next Home 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Buying Next Home 500k": { "value": "Buying Next Home 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Buying Next Home 750k": { "value": "Buying Next Home 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Refinance 200k": { "value": "Refinance 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Refinance 350k": { "value": "Refinance 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Refinance 500k": { "value": "Refinance 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Refinance 750k": { "value": "Refinance 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Line of Credit 200k": { "value": "Line of Credit 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Line of Credit" } ] }, "Line of Credit 350k": { "value": "Line of Credit 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Line of Credit" } ] }, "Line of Credit 500k": { "value": "Line of Credit 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Line of Credit" } ] }, "Line of Credit 750k": { "value": "Line of Credit 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Line of Credit" } ] }, "Investor 200k": { "value": "Investor 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Investor 350k": { "value": "Investor 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Investor 500k": { "value": "Investor 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Investor 750k": { "value": "Investor 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Investor - Interest Only 200k": { "value": "Investor - Interest Only 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Investor - Interest Only 350k": { "value": "Investor - Interest Only 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Investor - Interest Only 500k": { "value": "Investor - Interest Only 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Investor - Interest Only 750k": { "value": "Investor - Interest Only 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Investing" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "First Home Buyer 200k": { "value": "First Home Buyer 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "First Home Buyer 350k": { "value": "First Home Buyer 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "First Home Buyer 500k": { "value": "First Home Buyer 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "First Home Buyer 750k": { "value": "First Home Buyer 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Construction 200k": { "value": "Construction 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Construction 350k": { "value": "Construction 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Construction 500k": { "value": "Construction 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Construction 750k": { "value": "Construction 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "P+I" } ] }, "Buying Next Home - Interest Only 200k": { "value": "Buying Next Home - Interest Only 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Buying Next Home - Interest Only 350k": { "value": "Buying Next Home - Interest Only 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Buying Next Home - Interest Only 500k": { "value": "Buying Next Home - Interest Only 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Buying Next Home - Interest Only 750k": { "value": "Buying Next Home - Interest Only 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Buying Next Home" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Refinance - Interest Only 200k": { "value": "Refinance - Interest Only 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Refinance - Interest Only 350k": { "value": "Refinance - Interest Only 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Refinance - Interest Only 500k": { "value": "Refinance - Interest Only 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Refinance - Interest Only 750k": { "value": "Refinance - Interest Only 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Refinance" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "First Home Buyer - Interest Only 200k": { "value": "First Home Buyer - Interest Only 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "First Home Buyer - Interest Only 350k": { "value": "First Home Buyer - Interest Only 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "First Home Buyer - Interest Only 500k": { "value": "First Home Buyer - Interest Only 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "First Home Buyer - Interest Only 750k": { "value": "First Home Buyer - Interest Only 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "First Home Buyer" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Construction - Interest Only 200k": { "value": "Construction - Interest Only 200k", "depends": [ { "lvalue": "amount", "rvalue": 250000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Construction - Interest Only 350k": { "value": "Construction - Interest Only 350k", "depends": [ { "lvalue": "amount", "rvalue": 250001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 425000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Construction - Interest Only 500k": { "value": "Construction - Interest Only 500k", "depends": [ { "lvalue": "amount", "rvalue": 425001, "comparator": "gte" }, { "lvalue": "amount", "rvalue": 625000, "comparator": "lte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] }, "Construction - Interest Only 750k": { "value": "Construction - Interest Only 750k", "depends": [ { "lvalue": "amount", "rvalue": 625001, "comparator": "gte" }, { "lvalue": "purpose", "rvalue": "Construction" }, { "lvalue": "repayment_type", "rvalue": "IO" } ] } }, "text": "Refinance 350k" }, "amount": { "name": "Loan amount", "value": "350000", "autocomma": true, "classes": "form-group col-sm-6 simplified-col-sm-3", "ng_classes": "form-group col-xs-12 col-sm-4 col-md-3 order-md-1", "format": "currency", "validate": { "required": true, "numeric": true, "minNumber": 50000, "maxNumber": 1000000000 }, "error_message": "Loan amount must only be numbers with commas and have a value greater than 50,000.", "round_values": true, "natural_selector_text": { "text_after": "loan", "type": "amount" } }, "purpose": { "name": "Loan purpose", "text": "Refinance", "value": "Refinance", "classes": "form-group col-sm-6 simplified-col-sm-3", "ng_classes": "form-group col-xs-12 col-sm-4 col-md-3 order-md-2", "options": { "Buying Next Home": "Buying Next Home", "Refinance": "Refinance", "Line of Credit": "Line of Credit", "Investing": "Investing", "First Home Buyer": "First Home Buyer", "Construction": "Construction" }, "natural_selector_text": { "text_before": " for" } }, "repayment_type": { "name": "Repayment type", "value": "P+I", "classes": "form-group col-sm-6 simplified-hidden", "ng_classes": "form-group hidden", "exclude_prefill": true, "options": { "Principal & Interest": "P+I", "Interest only": "IO" }, "natural_selector_text": { "text_before": "with a repayment type of" }, "text": "Principal & Interest" }, "state": { "name": "State", "value": "NSW", "classes": "form-group col-sm-6 simplified-col-sm-2", "ng_classes": "form-group col-xs-12 col-sm-4 col-md-3 order-md-3", "use_geoip": "state", "options": [ "ACT", "NSW", "NT", "QLD", "SA", "TAS", "VIC", "WA" ], "natural_selector_text": { "text_before": "in" } }, "Loan Type": { "name": "Interest types", "value": "Variable", "exclude_prefill": true, "classes": "form-group col-sm-12 inline simplified-hidden", "ng_classes": "form-group hidden", "type": "checkbox", "options": { "Variable": "Variable", "1 year fixed": "Fixed Loan 1yr", "2 years fixed": "Fixed Loan 2yr", "3 years fixed": "Fixed Loan 3yr", "5 years fixed": "Fixed Loan 5yr" }, "validate": { "required": true }, "error_message": "One or more interest type is needed before comparing Home Loans", "text": "Variable" }, "provider_link": { "name": "provider_link", "classes": "col-sm-12 text-center inline inline-label provider-link", "ng_classes": "col-xs-12 col-sm-8 col-md-12 text-left inline inline-label provider-link order-md-5", "facet_preselect": true, "text_override": false, "type": "checkbox", "value": "Yes, just compare results with links", "options": { "Just compare loans which link to a loan provider": "Yes, just compare results with links" }, "text": "Just compare loans which link to a loan provider" }, "Compare": { "name": "Compare", "type": "button", "ng_classes": "col-xs-12 col-sm-4 col-md-3 order-md-4", "info_link": { "text": "No contact details required ☺" } } }; const deepClone = obj => { if (obj === null) return null; let clone = Object.assign({}, obj); Object.keys(clone).forEach( key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key]) ); if (Array.isArray(obj)) { clone.length = obj.length; return Array.from(clone); } return clone; }; deepClone(obj);
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
cloneDeep1
deepClone2
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Autogenerated LLM Summary
(model
gemma2:9b
, generated one year ago):
The provided data shows benchmark results for two JavaScript code snippets: `deepClone2` and `cloneDeep1`. * **`deepClone2`** performs better, executing at 1359.65 executions per second on Chrome 89 in a Windows environment. * **`cloneDeep1`** is slower, achieving 612.71 executions per second with the same browser and OS configuration. Without seeing the actual code for `deepClone2` and `cloneDeep1`, it's impossible to say definitively *why* `deepClone2` is faster. However, some common reasons for performance differences between similar cloning functions include: * **Algorithm Efficiency:** One function might use a more efficient algorithm for traversing and copying objects. * **Object Handling:** Different implementations might handle specific object types (like arrays or custom objects) differently, leading to speed variations. * **Loop Optimization:** The way loops are structured in each function can impact performance. * **Library Dependencies:** If one function relies on external libraries, those dependencies could introduce overhead. To give a more precise answer, you'd need to provide the code for both `deepClone2` and `cloneDeep1`. Then, a comparison of their implementations could reveal the specific reasons behind the performance difference.
Related benchmarks:
Object Deep Copy Test3
Lodash cloneDeep vs JSON Clone vs Bitfish Simple Clone
JavaScript spread operator vs cloneDeep
Comparing deep cloning methods (array of objects): Lodash <> Custom clone func <> JSON.parse <> structuredClone
Comparing deep cloning methods (small object): Lodash <> Custom clone func <> JSON.parse <> structuredClone 2
Comments
Confirm delete:
Do you really want to delete benchmark?