本文为lodash源码分析的第14篇,后续会持续更新这个专题,欢迎指正。
依赖
get函数的作用是获取object里path对应的值,具体参考专栏第一篇。
import get from '../get.js'
源码分析
baseAt函数的作用是获取object里paths对应的值,并以数组的形式返回。
function baseAt(object, paths) {
let index = -1
const length = paths.length
const result = new Array(length)
const skip = object == null
while (++index < length) {
result[index] = skip ? undefined : get(object, paths[index])
}
return result
}
首先,定义一些常量:
- 定义索引
index初始化为-1; - 定义长度
length初始化为paths.length; - 定义数组
result,初始化为长度为length的空数组; - 定义一个标识
skip,object是否为undefined或null
接着,循环给result赋值。
如果索引index小于length,就给result[index]赋值。
如果skip为true(即object为undefined或null),赋值undefined;否则调用
get函数获取object里对应路径的值。
最后,循环结束,返回result。