HTML Preparation code:
AخA
 
1
<script src="https://cdn.jsdelivr.net/lodash/4/lodash.min.js"></script>
Script Preparation code:
x
 
function destructuringFn(input) {
  const { contextMenu: { data: { documents = [] } = {} } = {} } = input;
  return documents;
}
function destructuringFnDynamic(input, key) {
  const { contextMenu: { data: { [key]: documents = [] } = {} } = {} } = input;
  return documents;
}
function lodashFn(input) {
  const documents = _.get(input, 'contextMenu.data.documents', []);
  return documents;
}
function lodashFnDynamic(input, key) {
  const documents = _.get(input, `contextMenu.data.${key}`, []);
  return documents;
}
function lodashFnDynamicArray(input, key) {
  const documents = _.get(input, ['contextMenu', 'data', 'key'], []);
  return documents;
}
function test(fn, input, key) {
  fn(input, key);
}
Tests:
  • destructuring with defaults, empty input

     
    test(destructuringFn, {});
  • lodash get, empty input

     
    test(lodashFn, {});
  • destructuring with defaults, find item

     
    const input = { contextMenu: { data: { documents: [{ id: 'doc' }] } } };
    test(destructuringFn, input);
  • lodash get, find item

     
    const input = { contextMenu: { data: { documents: [{ id: 'doc' }] } } };
    test(lodashFn, input);
  • destructuring dynamic key

     
    const input = { contextMenu: { data: { documents: [{ id: 'doc' }] } } };
    test(destructuringFn, input, 'documents');
  • lodash dynamic key

     
    const input = { contextMenu: { data: { documents: [{ id: 'doc' }] } } };
    test(lodashFnDynamic, input, 'documents');
  • lodash dynamic key using array

     
    const input = { contextMenu: { data: { documents: [{ id: 'doc' }] } } };
    test(lodashFnDynamicArray, input, 'documents');
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    destructuring with defaults, empty input
    lodash get, empty input
    destructuring with defaults, find item
    lodash get, find item
    destructuring dynamic key
    lodash dynamic key
    lodash dynamic key using array

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 5 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36
Chrome 78 on Windows
View result in a separate tab
Test name Executions per second
destructuring with defaults, empty input 6074671.0 Ops/sec
lodash get, empty input 1839597.0 Ops/sec
destructuring with defaults, find item 1672529.9 Ops/sec
lodash get, find item 983559.8 Ops/sec
destructuring dynamic key 1690493.6 Ops/sec
lodash dynamic key 769004.6 Ops/sec
lodash dynamic key using array 1224656.9 Ops/sec