lodash方法之compact

45 阅读1分钟

创建一个新数组,包含原数组中所有的非假值元素。例如falsenull,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++) { .... }, 简单易懂,但是函数库为了减少代码量会用上述的方法。