Lodash仅过滤负数并包含零

时间:2018-03-02 20:18:21

标签: javascript lodash

使用lodash,目标是过滤负数。但是,由于某种原因,下面的代码也会过滤掉零。为什么会发生这种情况,如何包含零?我已经尝试将>=更改为>,这仍然不起作用(无论如何这显然是错误的)。

let numbers =  [1,2,3,0,-1,4,0];

_.filter(numbers, (number) => {
     if (number >= 0) {
          return number;
     } 
 });

输出:

[1,2,3,4]

我如何包含零?

1 个答案:

答案 0 :(得分:2)

您只需要在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>