创建一个新数组,包含原数组中所有的非假值元素。例如false, null,0, "", undefined, 和 NaN 都是被认为是“假值”。
例子
_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]
源码:
function compact(array) {
17 var index = -1,
18 length = array == null ? 0 : array.length,
19 resIndex = 0,
20 result = [];
21
22 while (++index < length) {
23 var value = array[index];
24 if (value) {
25 result[resIndex++] = value;
26 }
27 }
28 return result;
29}
30
学习到的点是, var index = -1 ,然后又在while执行条件里面++index这种写法。 大多数情况我会这样写 for(let i = 0; i < arr.length; i++) { .... }, 简单易懂,但是函数库为了减少代码量会用上述的方法。