UNPKG

ut2

Version:

一个现代 JavaScript 实用工具库。[点击查看在线文档]。

23 lines (19 loc) 672 B
'use strict'; 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;