bistro — lightning-fast _.get alternative
Bistro safely extracts deeply nested object properties. Works 7 times
as fast as Lodash get
, dwarfs fast-get
and object-path
.
Under the hood, bistro
compiles array paths into good old object && object.prop && object.prop.prop2...
checks, making your code both concise and efficient. Lodash.get
is fast enough, but why waste CPU cycles on property access? bistro
is safe to use in performance-critical applications, like data analysis and visualization.
Usage
// Load the full moduleconst bistro = ;// Or use component-based importsconst bistroGet = ;// Or use the ES6 syntax; // Compile the getter - do it once, or the magic is gone!const getUsername = bistro; // securely access // => undefined // => undefined // => undefined // => "Ivan" // Or provide a default value // => "anonymous"
Install using npm
$ npm i --save bistro
Benchmarks
The chart summarizes the performance of successful property access by array path at various depths. In all implementations misses are slightly slower. String paths (user.name
) require parsing and memory allocation, with disastrous performance effect.
- Default
bistro.get
implementation is the fat orange line. lodash.get
is red.- The other
bistro-*
lines are alternative implementations not included in the bundle, for me to watch out for changes. fast-get
andobject-path
are there in the bottom.
Made by Vladimir Klepov.