propfinder

1.1.0 • Public • Published

propfinder

A micro library to find a property on an object. It was specifically written to solve this problem:

if (foo && foo.bar && foo.bar.baz === 'something') {}

You cannot just write the following because you might have a ReferenceError thrown.

if (foo.bar.baz === 'something') {}

But with propfinder you can do:

if (propfinder('bar.baz', foo) === 'something') {}

If the property does not exist, propfinder will return undefined.

It is curryable, so you can do stuff like this:

 
var someJsonStructure = {
    meta: {
        id: 123
    },
    ...
};
 
var someOtherJsonStructure = {
    error: "Not found"
}
 
var getId = propfinder('meta.id');
 
var id = getId(someJsonStructure); // => 123
 
var id2 = getId(someOtherJsonStructure); // => undefined
 

It takes a method as the third optional argument.

propfinder('foo', { foo: 'bar' }, function (value) {
    console.log('we found the value', value, 'in the object on the key foo';
});

The return value from the optional method is also returned from propfinder.

var resultId = propfinder('person', contactsJsonData, function (person) {
    return person.firstName + ' ' + person.lastName;
});

It should work in all ES3 browsers and in node.

Readme

Keywords

none

Package Sidebar

Install

npm i propfinder

Weekly Downloads

1

Version

1.1.0

License

BSD-3-Clause

Last publish

Collaborators

  • gustavnikolaj