# get
# Description
获取对象深层的值,主要是基于 baseGet 实现,不同在于 get 可以添加默认值
# Params
(object, path, defaultValue)
{Object} object: 原对象
{Array|string} path: 属性路径 或 属性名
{*} defaultValue: 默认值
# Return
{*} value
返回获取到的值或者默认值
# Depend
import baseGet from './.internal/baseGet.js'
# Code
function get(object, path, defaultValue) {
const result = object == null ? undefined : baseGet(object, path)
return result === undefined ? defaultValue : result
}
# Analyze
- 首先判断
object是否为null,如果为null,result则为undefined, 否则使用baseGet返回的值 - 如果
result为undefined则返回defaultValue,否则返回result
# Remark
- 如果不传入
defaultValue,defaultValue默认为undefined - 默认参数 MDN (opens new window)
# Example
const object = { 'a': [{ 'b': { 'c': 3 } }] }
get(object, 'a[0].b.c') // 3
get(object, ['a', '0', 'b', 'c']) // 3
get(object, 'a.b.c', 'default') // default