lib/index.js
function getPath(obj, path, allowSkipArrays) {
	if (path === null || path === undefined) return obj;
	var cur = obj;
	var parts = path.split('.');
	var i;
	for (i = 0; i < parts.length; i++) {
		if (isScalar(cur)) return undefined;
		if (Array.isArray(cur) && allowSkipArrays && !(/^[0-9]+$/.test(parts[i])) && cur.length === 1) {
			cur = cur[0];
			i--;
		} else {
			cur = cur[parts[i]];
		}
	}
	return cur;
}
function getPath(obj, path, allowSkipArrays) {
	if (path === null || path === undefined) return obj;
	var cur = obj;
	var parts = path.split('.');
	var i;
	for (i = 0; i < parts.length; i++) {
		if (isScalar(cur)) return undefined;
		if (Array.isArray(cur) && allowSkipArrays && !(/^[0-9]+$/.test(parts[i])) && cur.length === 1) {
			cur = cur[0];
			i--;
		} else {
			cur = cur[parts[i]];
		}
	}
	return cur;
}
function getPath ( obj , path , allowSkipArrays ) { if ( path === null || path === undefined ) return obj ; var cur = obj ; var parts = path . split ( '.' ) ; var i ; for ( i = 0 ; i < parts . length ; i ++ ) { if ( isScalar ( cur ) ) return undefined ; if ( Array . isArray ( cur ) && allowSkipArrays && ! ( / ^[0-9]+$ / . test ( parts [ i ] ) ) && cur . length === 1 ) { cur = cur [ 0 ] ; i -- ; } else { cur = cur [ parts [ i ] ] ; } } return cur ; }
Gets the value at a given path in an object.

@method getPath
@static
@param {Object} obj - The object
@param {String} path - The path, dot-separated
@param {Boolean} allowSkipArrays - If true: If a field in an object is an array and the
path key is non-numeric, and the array has exactly 1 element, then the first element
of the array is used.
@return {Mixed} - The value at the path
Gets the value at a given path in an object .