每日一篇——lodash—array—compact

lodash compact 函数解析
本文详细解析了 lodash 库中的 compact 函数,该函数用于从数组中移除所有 falsy 值,如 false, null, 0, undefined 和 NaN。通过源码分析,我们了解了其工作原理及实现方式。
_.compact(array)
复制代码

创建一个去除所有代表falsy值的数组。如false, null, 0, "", undefined和NaN都属于falsy值。

使用方法

_.compact([0, 1, false, 2, '', 3]);
// => [1, 2, 3]
复制代码

源码分析

/**
 * Creates an array with all falsey values removed. The values `false`, `null`,
 * `0`, `""`, `undefined`, and `NaN` are falsey.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Array
 * @param {Array} array The array to compact.
 * @returns {Array} Returns the new array of filtered values.
 * @example
 *
 * _.compact([0, 1, false, 2, '', 3]);
 * // => [1, 2, 3]
 */
function compact(array) {
  var index = -1,
      length = array == null ? 0 : array.length,
      resIndex = 0,
      result = [];
 
 
  while (++index < length) {
    var value = array[index];
    if (value) {
      result[resIndex++] = value;
    }
  }
  return result;
}
 
module.exports = compact;
复制代码

这个方法没有什么特别之处,主要是创建一个空数组,然后循环遍历原数组如果符合条件则加入这个创建的数组。while循环相比for循环更加精简,而且直接用++将赋值和+1操作合并,更加简练。

转载于:https://juejin.im/post/5c8cb33df265da2dd5401106

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值