Javascript-过滤偶数

Javascript-过滤偶数,javascript,arrays,filter,Javascript,Arrays,Filter,我想过滤一个包含零(0)的数组,同时捕获它们 var arr1=[-200,-163,-26,-4,0,7,76]; var evens=arr1.过滤器(函数(x){ 如果(x%2==0 | | x==0){ 返回x; } }) 控制台日志(evens)从过滤器内部返回真/假。在您的代码中,当您返回 0 时,过滤器>代码>将考虑它 FALSE ,因此您不会在过滤的数组中得到0。 var arr1=[-200,-163,-26,-4,0,7,76]; var evens=arr1.过滤器(函数

我想过滤一个包含零(0)的数组,同时捕获它们

var arr1=[-200,-163,-26,-4,0,7,76];
var evens=arr1.过滤器(函数(x){
如果(x%2==0 | | x==0){
返回x;
}
})

控制台日志(evens)
过滤器内部返回
真/假
。在您的代码中,当您返回<代码> 0 时,<代码>过滤器>代码>将考虑它<代码> FALSE ,因此您不会在过滤的数组中得到0。
var arr1=[-200,-163,-26,-4,0,7,76];
var evens=arr1.过滤器(函数(x){
返回x%2==0 | | x==0
})

控制台日志(evens)需要从函数返回
true
false
。它将根据返回值填充返回的数组。因为条件返回
布尔值
,所以您可以将返回值设置为条件

var arr1=[-200,-163,-26,-4,0,7,76];
var evens=arr1.过滤器(函数(x){
返回x%2==0;
})

控制台日志(evens),因为
0
被视为错误值

您的筛选函数本质上是为
0
返回
false
,并从数组中筛选它

查看以获得更深入的了解


Thankx

数组筛选器希望返回布尔值而不是数字
若你们需要结果中的值,它应该为真,否则为假
0被视为假值。

您可以在函数中返回true

var arr1=[-200,-163,-26,-4,0,7,76];
var evens=arr1.过滤器(函数(x){
如果(x%2==0 | | x==0){
返回true;
}
})
控制台日志(evens)
const myEvennessFilter=(args)=>args.filter(elem=>(elem%2)==0);

日志(MyEventnessFilter([1,2,3,4,5,6,7,8,9])若要使其运行速度提高25%,请将“elem%2==0”替换为“(elem&1)==0”

//如何在js中使用filter()过滤掉偶数
设数=[1,2,3,4,5,6,7];

让偶数=numbers.filter(elem=>elem%2==0)
这不是工作方式。回调需要返回一个布尔值。您希望返回true而不是x的可能重复项。一旦您选中
x%2===0
@MasterTextman Master谢谢。我刚才从问题中抄了下来。EditedBit可能更短:
arr1.filter(x=>x%2==0)