Lodash is a popular javascript based library which provides 200+
functions to facilitate web development. It provides helper functions
like map, filter, invoke as well as function binding, javascript
templating, deep equality checks, creating indexes and so on. Lodash
can be used directly inside a browser and also with Node.js.
Working with objects using JavaScript can be quite challenging,
specifically if you have lots of manipulation to be done with them.
Lodash comes with lots of features that eases your work with objects.
Lodash is an open source project and you can easily contribute to the
library and add features in the form of plugins and make it available
on GitHub and in Node.js.
Syntax
_.get(object, path, [defaultValue]) Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in
its place.
Arguments
object (Object) − The object to query.
path (Array|string) − The path of the property to get.
[defaultValue] (*) − The value returned for undefined resolved values.
If you installed lodash into your project, then you can use
_.get(resp,"userdetails.name")
as documented.
If you haven't installed lodash, then I strongly suggest you install from npm because lodash is the best and the most widely used utility package.
command to install Lodash
npm install loadash
Eg:-
var _ = require("lodash");
var data = [
{ userdetails: { name: "d" } },
{},
{ userdetails: {} },
{ userdetails: { name: "d" } },
];
for (i = 0; i < data.length; i++) {
var resp = data[i];
if (_.get(resp, "userdetails.name") == "d") {
// if (resp.userdetails && resp.userdetails.name == "d") { use without loadlash
console.log("Success");
} else {
console.log("failed");
}
}
Here loadash is super complex. But you can use this to avoid runtime errors. Below both expressions get the same result
resp.userdetails && resp.userdetails.name == "d"
===
_.get(resp, "userdetails.name") == "d"