# 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