compact
今天的lodash源码解析为_.compact
先看这个方法是干嘛的
创建一个新数组,包含原数组中所有的非假值元素。例如false, null,0, "", undefined, 和 NaN 都是被认为是“假值”。
再看源码
function compact(array) {
let resIndex = 0
const result = []
if (array == null) {
return result
}
for (const value of array) {
if (value) {
result[resIndex++] = value
}
}
return result
}
其实源码很简单,只有15行,主要做的操作是,创建一个新的数组,然后将原来数组中的 真值 返回,其实核心所作的就是创建数组,存入真值。
代码的第5行,通过双等,而没有三等的好处是,可以同时过滤掉null和undefined两个非法值。
然后第9行,通过for...of进行数组的遍历,通过if来判断是否为真值,当为假值时候,就会进行过滤处理,然后将真值付给创建的数组,最后将这个数组返回。
这里的知识点主要为for...of和if(value) 判断是否为真值,这两个知识点。
后面会为这两个知识点出单独的章节