HTML Preparation code:
AخA
 
1
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.11/lodash.min.js"></script>
Script Preparation code:
 
var arr = [];
var object = { 
    type: 'aaa',
    subtype: 'bbb',
    card_last4:'bbb',
    card_type:'bbb',
    card_exp_month:'bbb',
    card_exp_year:'bbb',
    card_country:'bbb',
    foo: 'bar'
};
for (var i = 0; i <= 100000; i++) { arr.push(object); }
Tests:
  • Lodash

     
    arr.map(function (element) {
        return _.pick(
            element,
            'type',
            'subtype',
            'card_last4',
            'card_type',
            'card_exp_month',
            'card_exp_year',
            'card_country',
            'something'
        );
    });
  • Native

     
    arr.map(function ({
          type,
          subtype,
          card_last4,
          card_type,
          card_exp_month,
          card_exp_year,
          card_country,
          something
        } ) {
        return {
          type,
          subtype,
          card_last4,
          card_type,
          card_exp_month,
          card_exp_year,
          card_country,
          something
        };
    });
  • Manual pick with property names

     
    const props = [
          "type",
          "subtype",
          "card_last4",
          "card_type",
          "card_exp_month",
          "card_exp_year",
          "card_country",
          "something"
    ];
    arr.map(function (element) {
        const res = {};
        for(let prop of props){
          res[prop] = element[prop]
        }
        return res;
    });
  • Manual pick

     
    arr.map(function (element) {
        return {
          type: element.type,
          subtype: element.subtype,
          card_last4: element.card_last4,
          card_type: element.card_type,
          card_exp_month: element.card_exp_month,
          card_exp_year: element.card_exp_year,
          card_country: element.card_country,
          something: element.something
        };
    });
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Lodash
    Native
    Manual pick with property names
    Manual pick

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36
Chrome 116 on Windows
View result in a separate tab
Test name Executions per second
Lodash 3.3 Ops/sec
Native 144.9 Ops/sec
Manual pick with property names 30.8 Ops/sec
Manual pick 264.7 Ops/sec