【发布时间】:2015-08-05 19:53:11
【问题描述】:
过滤器功能是否会自动过滤掉假值,例如 false、null 或 undefined?如果是这样,如何阻止它这样做。
我需要过滤掉数组中的所有 0,所以我使用了 array.filter 回调,我意识到过滤器函数会删除错误值,即使我想保留它们。有没有办法解决这个问题?
编辑:这是我拥有的代码,进行深度比较并没有返回错误的值。
function removeZero(arr) {
return arr.filter(function(element){
if(element!==0){
return element;
}
});
}
编辑 2:这是包含测试数组内容的 repl.it 链接,当我运行它时,结果会过滤掉 false、null 和 undefined。 https://repl.it/BAiK
【问题讨论】:
-
您的代码在这里可能会有所帮助。过滤器功能将删除您要求它删除的内容。如果它正在删除
null或undefined,那是因为 这就是你要求它做的事情 -
如果某个答案解决了您的问题,请单击答案左侧的绿色对勾接受它。这样,下一个访问此问题的人会更好地知道什么是可以解决您的问题的答案。
-
我更改了示例以显示对象也发生了什么。你能告诉我们数组的内容吗?
-
我编辑了我的答案并修复了你的代码
标签: javascript arrays filter functional-programming