首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Array.sort().filter(...)在Javascript中为零

Array.sort().filter(...)在Javascript中为零
EN

Stack Overflow用户
提问于 2014-04-16 00:23:36
回答 3查看 6.6K关注 0票数 13

为什么以下筛选器没有返回0?

代码语言:javascript
复制
[0, 5, 4].sort().filter(function(i){return i}) // returns : [4, 5]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-16 00:24:42

0被认为是一个错误的值。

过滤器函数本质上是为0返回false,并从数组中过滤它。

请查看this以进行更深入的了解。

票数 16
EN

Stack Overflow用户

发布于 2014-04-16 00:37:41

筛选器用于检查条件。您返回的是值本身,这不是正确的用法。为此,它应该是

代码语言:javascript
复制
[0, 5, 4].sort().filter(function(i){return true;}); //[0,4,5] is returned

当您传递值本身时,所有等于真的非零数和等于假值的0都会被过滤器忽略。如果由于某种原因,你仍然想坚持这种方式,用引号将0括起来,就可以解决问题了。

代码语言:javascript
复制
[0, 5, 4].sort().filter(function(i){return i==0?'0':i;}) //[0,4,5] is returned
票数 8
EN

Stack Overflow用户

发布于 2015-09-17 20:43:59

试试这个:

代码语言:javascript
复制
[0, 5, 4].sort().filter(function(i){
    return ((i) ? i : !i);
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23089336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档