使用lodash,目标是过滤负数。但是,由于某种原因,下面的代码也会过滤掉零。为什么会发生这种情况,如何包含零?我已经尝试将>=
更改为>
,这仍然不起作用(无论如何这显然是错误的)。
let numbers = [1,2,3,0,-1,4,0];
_.filter(numbers, (number) => {
if (number >= 0) {
return number;
}
});
输出:
[1,2,3,4]
我如何包含零?
答案 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>