本文为lodash源码分析的第三篇,后续会持续更新这个专题,欢迎指正。
依赖
import isKey from './isKey.js'
import stringToPath from './stringToPath.js'
源码分析
castPath函数是对 value 参数统一处理成数组的形式。
function castPath(value, object) {
if (Array.isArray(value)) {
return value
}
return isKey(value, object) ? [value] : stringToPath(value)
}
首先,判断value参数是不是数组,是就直接返回 value。
接着,调用isKey函数判断value是不是属性名,是则返回一个包含value的数组,否则调用stringToPath函数将 value转换成参数数组。