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 |
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.11/lodash.min.js"></script>
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); }
arr.map(function (element) {
return _.pick(
element,
'type',
'subtype',
'card_last4',
'card_type',
'card_exp_month',
'card_exp_year',
'card_country',
'something'
);
});
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
};
});
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;
});
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
};
});