| 1234567891011121314151617181920212223 | //      'use strict';// Resolves property names or property paths defined with period-delimited// strings or arrays of strings. Property names that are found on the source// object are used directly (even if they include a period).// Nested property names that include periods, within a path, are only// understood in array paths.function getPropertyByPath(source        , path                        )      {  if (typeof path === 'string' && source.hasOwnProperty(path)) {    return source[path];  }  const parsedPath = typeof path === 'string' ? path.split('.') : path;  return parsedPath.reduce((previous, key) => {    if (previous === undefined) {      return previous;    }    return previous[key];  }, source);}module.exports = getPropertyByPath;
 |