33 lines
754 B
JavaScript
33 lines
754 B
JavaScript
import _curry2 from './internal/_curry2';
|
|
|
|
/**
|
|
* Retrieve the value at a given path.
|
|
*
|
|
* @func
|
|
* @memberOf R
|
|
* @since v0.2.0
|
|
* @category Object
|
|
* @typedefn Idx = String | Int
|
|
* @sig [Idx] -> {a} -> a | Undefined
|
|
* @param {Array} path The path to use.
|
|
* @param {Object} obj The object to retrieve the nested property from.
|
|
* @return {*} The data at `path`.
|
|
* @see R.prop
|
|
* @example
|
|
*
|
|
* R.path(['a', 'b'], {a: {b: 2}}); //=> 2
|
|
* R.path(['a', 'b'], {c: {b: 2}}); //=> undefined
|
|
*/
|
|
var path = /*#__PURE__*/_curry2(function path(paths, obj) {
|
|
var val = obj;
|
|
var idx = 0;
|
|
while (idx < paths.length) {
|
|
if (val == null) {
|
|
return;
|
|
}
|
|
val = val[paths[idx]];
|
|
idx += 1;
|
|
}
|
|
return val;
|
|
});
|
|
export default path; |