@e22m4u/js-repository
Version:
Реализация репозитория для работы с базами данных в Node.js
24 lines (23 loc) • 543 B
JavaScript
/**
* Get value by path.
*
* @param {object} obj
* @param {string} path
* @param {*} orElse
* @returns {*}
*/
export function getValueByPath(obj, path, orElse = undefined) {
if (!obj || typeof obj !== 'object') return orElse;
if (!path || typeof path !== 'string') return orElse;
const keys = path.split('.');
let value = obj;
for (const key of keys) {
if (typeof value === 'object' && value !== null && key in value) {
value = value[key];
} else {
value = orElse;
break;
}
}
return value;
}