lodash.compact()
大家好-我是灵魂画师-茄子。水平一般,喜欢画画。
最近开始看有关lodash的源码了 争取每天一篇有关lodash的方法的解释
_.compact(array)
创建一个新数组,包含原数组中所有的非假值元素。例如false, null, 0,-0, "", undefined, 和 NaN 都是被认为是“假值”。
* @since 0.1.0
* @category Array
* @param {Array} array The array to compact.
* @returns {Array} Returns the new array of filtered values.
相关代码:
function compact(array) {
var index = -1,
length = array == null ? 0 : array.length,
resIndex = 0,
result = [];
while (++index < length) { // ++a 先加再进行对比
var value = array[index];
if (value) { // 核心代码 利用假值来判断是否注入数据到新数组中
result[resIndex++] = value; // a ++ 先使用 再加
}
}
return result;
}
大致思路:
- 判断array是否 == null (null,undefined等)后,获取array的length
- 利用while循环 取 array中每一个元素value, 判断 Boolean(value)是否为true
- 如果为true则注入新数组result中
- 返回result(一个新的数组)
这个方法比较简单,我相信大家也都看懂了
我也有很多不懂的地方,欢迎大家一起来讨论与技术有关的一些想法~~~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。