get-value-by-path.js 543 B

1234567891011121314151617181920212223
  1. /**
  2. * Get value by path.
  3. *
  4. * @param {object} obj
  5. * @param {string} path
  6. * @param {*} orElse
  7. * @returns {*}
  8. */
  9. export function getValueByPath(obj, path, orElse = undefined) {
  10. if (!obj || typeof obj !== 'object') return orElse;
  11. if (!path || typeof path !== 'string') return orElse;
  12. const keys = path.split('.');
  13. let value = obj;
  14. for (const key of keys) {
  15. if (typeof value === 'object' && value !== null && key in value) {
  16. value = value[key];
  17. } else {
  18. value = orElse;
  19. break;
  20. }
  21. }
  22. return value;
  23. }