Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
Chrome 85
Mac OS X 10.15.6
Desktop
4 years ago
Test name Executions per second
lodash omit for 3 keys 463232.1 Ops/sec
native for in loop for 3 keys 3403710.2 Ops/sec
lodash omit for 2 keys 493967.1 Ops/sec
native for in loop for 2 keys 3154813.5 Ops/sec
lodash omit for 1 keys 544124.1 Ops/sec
native for in loop for 1 keys 2936519.8 Ops/sec
HTML Preparation code:
AخA
 
1
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js'></script>
Script Preparation code:
x
 
var allHeaders = {
  'Accept-Encoding': 'gzip,deflate',
  'Accept-Language': 'en-US',
  'Content-Type': 'application/json',
  'User-Agent': `(compatible; Mozilla/5.0; MSIE 9.0; Trident/5.0;})`,
  'Proxy-Connection': 'Keep-Alive',
  Connection: 'Keep-Alive',
  Accept: 'application/hal+json, application/json',
};
function omit(obj, keys) {
  var result = {};
  for (let i in obj) {
    if (keys.indexOf(i) >= 0) continue;
    result[i] = obj[i];
  }
  return result;
}
Tests:
  • lodash omit for 3 keys

     
    _.omit(allHeaders, ['Accept-Encoding', 'User-Agent', 'Connection']);
  • native for in loop for 3 keys

     
    omit(allHeaders, ['Accept-Encoding', 'User-Agent', 'Connection']);
  • lodash omit for 2 keys

     
    _.omit(allHeaders, ['Accept-Encoding', 'Connection']);
  • native for in loop for 2 keys

     
    omit(allHeaders, ['Accept-Encoding', 'Connection']);
  • lodash omit for 1 keys

     
    _.omit(allHeaders, ['Connection']);
  • native for in loop for 1 keys

     
    omit(allHeaders, ['Connection']);