@e-group/utils
Version:
eGroup team utils that share across projects.
39 lines (31 loc) • 803 B
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getIn;
var _lodash = _interopRequireDefault(require("lodash.clonedeep"));
/**
* get value in object
*/
function getIn(obj, paths, defaultValue) {
let copy = obj;
let result;
for (let i = 0; i < paths.length; i++) {
const key = paths[i];
if (i === paths.length - 1) {
if (copy[key] != null) {
result = (0, _lodash.default)(copy[key]);
} else {
result = (0, _lodash.default)(defaultValue);
}
} else {
if (copy[key] == null) {
result = (0, _lodash.default)(defaultValue);
break;
}
copy = copy[key];
}
}
return result;
}