本文为读 lodash 源码的第七十四篇,后续文章会更新到这个仓库中,欢迎 star:pocket-lodash
gitbook也会同步仓库的更新,gitbook地址:pocket-lodash
import baseGet from './baseGet.js'
import slice from '../slice.js'
parent
的作用是取指定属性路径上一层在 object
中的值。
例如有 object
如下:
const object = {
a: {
b: {
c: 'test'
}
}
}
指定的属性路径为 ['a', 'b', 'c']
,则取的是属性路径[['a', 'b']
的值,即最后取出的值为:
{
c: 'test'
}
源码如下:
function parent(object, path) {
return path.length < 2 ? object : baseGet(object, slice(path, 0, -1))
}
如果 path.length
小于 2
,即为 1
或者 0
,这里的父级只能为 object
本身。
否则调用 baseGet
取值,传入的第二个参数使用 slice
方法,将最后一项移除。这时取出来的值即为父级的值。
署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0)
最后,所有文章都会同步发送到微信公众号上,欢迎关注,欢迎提意见:
作者:对角另一面