ut2
Version:
一个现代 JavaScript 实用工具库。[点击查看在线文档]。
23 lines (19 loc) • 672 B
JavaScript
;
var native = require('./internals/native.js');
var isNil = require('./isNil.js');
var isUndefined = require('./isUndefined.js');
var toPath = require('./toPath.js');
function baseGet(object, key) {
var paths = toPath(key, object);
var length = paths.length;
var index = 0;
while (!isNil(object) && index < length) {
object = object[paths[index++]];
}
return index && index === length ? object : native.nativeUndefined;
}
function get(object, key, defaultValue) {
var result = isNil(object) ? native.nativeUndefined : baseGet(object, key);
return isUndefined(result) ? defaultValue : result;
}
module.exports = get;