代码之家  ›  专栏  ›  技术社区  ›  Moody

Lodash仅过滤负数并包含零

  •  0
  • Moody  · 技术社区  · 7 年前

    使用lodash,目标是过滤负数。然而,出于某种原因,下面的代码也会过滤零。为什么会发生这种情况,我如何才能包括零?我试过换衣服 >= > 但这仍然不起作用(无论如何,这显然是错误的)。

    let numbers =  [1,2,3,0,-1,4,0];
    
    _.filter(numbers, (number) => {
         if (number >= 0) {
              return number;
         } 
     });
    

    输出:

    [1,2,3,4]
    

    如何包含零?

    1 回复  |  直到 7 年前
        1
  •  2
  •   ryeballar    7 年前

    只需在 if 陈述

    let result = _.filter(numbers, number => number >= 0);
    

    代码返回数值,其中零的计算结果为falsy,非零的计算结果为truthy。这就是导致过滤器不包含零的原因。

    let numbers =  [1,2,3,0,-1,4,0];
    
    let result = _.filter(numbers, number => number >= 0);
    
    console.log(result);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>