lodash源码分析之baseAt

86 阅读1分钟

本文为lodash源码分析的第14篇,后续会持续更新这个专题,欢迎指正。

依赖

get函数的作用是获取objectpath对应的值,具体参考专栏第一篇。

import get from '../get.js'

源码分析

baseAt函数的作用是获取objectpaths对应的值,并以数组的形式返回。

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
}

首先,定义一些常量:

  1. 定义索引index初始化为-1
  2. 定义长度length初始化为paths.length
  3. 定义数组result,初始化为长度为length的空数组;
  4. 定义一个标识skipobject是否为undefinednull

接着,循环给result赋值。 如果索引index小于length,就给result[index]赋值。 如果skiptrue(即objectundefinednull),赋值undefined;否则调用 get函数获取object里对应路径的值。

最后,循环结束,返回result