Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组筛选器返回的值不正确吗?_Javascript_Arrays_Node.js_Filter - Fatal编程技术网

Javascript 数组筛选器返回的值不正确吗?

Javascript 数组筛选器返回的值不正确吗?,javascript,arrays,node.js,filter,Javascript,Arrays,Node.js,Filter,函数零点计数(arr){ 常数零=arr.filter(el=>{ 如果(el==0){ 返回el; } }); return zero.length;//但它返回0。我希望它返回3。 } log(零计数([2,3,0,5,0,2,0])您可以使用如下逻辑: [....].filter(x => x===0).length 因此,您的代码将是 函数零点计数(arr){ 返回arr.filter(x=>x==0).length; } log(零计数([2,3,0,5,0,2,0])您可以

函数零点计数(arr){
常数零=arr.filter(el=>{
如果(el==0){
返回el;
}
});
return zero.length;//但它返回0。我希望它返回3。
}

log(零计数([2,3,0,5,0,2,0])您可以使用如下逻辑:

[....].filter(x => x===0).length
因此,您的代码将是

函数零点计数(arr){
返回arr.filter(x=>x==0).length;
}

log(零计数([2,3,0,5,0,2,0])您可以使用如下逻辑:

[....].filter(x => x===0).length
因此,您的代码将是

函数零点计数(arr){
返回arr.filter(x=>x==0).length;
}

log(零计数([2,3,0,5,0,2,0])对于筛选,需要返回类似布尔值的值,例如or值

更好的方法是直接计算零值

函数零点计数(arr){
返回arr.reduce((s,v)=>s+!v,0);
}

log(零计数([2,3,0,5,0,2,0])对于筛选,需要返回类似布尔值的值,例如or值

更好的方法是直接计算零值

函数零点计数(arr){
返回arr.reduce((s,v)=>s+!v,0);
}

log(零计数([2,3,0,5,0,2,0])
filter
回调函数应该返回布尔值,并且您没有处理错误情况

您的函数应该如下所示

function zeroCount(arr){       
  const zero = arr.filter(el=>{
     return el === 0;
  });

  return zero.length; // it returns 3
}
或者使用速记

function zeroCount(arr){       
  const zero = arr.filter(el=> el === 0);

  return zero.length; // it returns 3
}


filter
回调函数应该返回布尔值,并且您没有处理错误情况

您的函数应该如下所示

function zeroCount(arr){       
  const zero = arr.filter(el=>{
     return el === 0;
  });

  return zero.length; // it returns 3
}
或者使用速记

function zeroCount(arr){       
  const zero = arr.filter(el=> el === 0);

  return zero.length; // it returns 3
}


如果您返回一个“truthy”值,过滤器将只添加元素。当前,您正在返回e1,返回值为0。(这是法尔西)

只需返回true即可

函数零点计数(arr){
常数零=arr.filter(el=>{
如果(el==0){
返回true;
}
});
return zero.length;//但它返回0。我希望它返回3。
}

log(零计数([2,3,0,5,0,2,0])仅当您返回“truthy”值时,过滤器才会添加元素。当前,您正在返回e1,返回值为0。(这是法尔西)

只需返回true即可

函数零点计数(arr){
常数零=arr.filter(el=>{
如果(el==0){
返回true;
}
});
return zero.length;//但它返回0。我希望它返回3。
}

log(零计数([2,3,0,5,0,2,0])现在,如果元素为0,则返回0。过滤器的工作原理是它需要一个布尔值,它应该将当前元素保留在新数组中

不幸的是,您返回的是0,这将转换为false

函数零点计数(arr){
常数零=arr.filter(el=>{
如果(el==0){
return el;//返回0,因此不会将其添加到筛选数组中
}
});
return zero.length;//但它返回0。我希望它返回3。
}

log(零计数([2,3,0,5,0,2,0])现在,如果元素为0,则返回0。过滤器的工作原理是它需要一个布尔值,它应该将当前元素保留在新数组中

不幸的是,您返回的是0,这将转换为false

函数零点计数(arr){
常数零=arr.filter(el=>{
如果(el==0){
return el;//返回0,因此不会将其添加到筛选数组中
}
});
return zero.length;//但它返回0。我希望它返回3。
}
log(零计数([2,3,0,5,0,2,0])
函数零点计数(arr){
常数0=arr.filter(el=>el==0);
返回零。长度;
}
log(零计数([2,3,0,5,0,2,0])
函数零点计数(arr){
常数0=arr.filter(el=>el==0);
返回零。长度;
}

log(零计数([2,3,0,5,0,2,0])您需要了解过滤器的工作原理

filter函数将根据您从内部返回的true或false拾取或删除元素

您返回的el为0。JS中的0为false。这就是你的代码不起作用的原因

两种可能的解决办法 (一)

(二)

3) 炫耀

zeroCount = (arr) => arr.filter(el => !el).length

您需要了解过滤器是如何工作的

filter函数将根据您从内部返回的true或false拾取或删除元素

您返回的el为0。JS中的0为false。这就是你的代码不起作用的原因

两种可能的解决办法 (一)

(二)

3) 炫耀

zeroCount = (arr) => arr.filter(el => !el).length

函数
过滤器
的处理程序应返回布尔值

以下方法假设只有数字

函数零点计数(arr){
返回arr.filter(el=>!el).length;
}

log(零计数([2,3,0,5,0,2,0])函数
过滤器的处理程序应返回布尔值

以下方法假设只有数字

函数零点计数(arr){
返回arr.filter(el=>!el).length;
}

log(零计数([2,3,0,5,0,2,0])下面的方法有助于返回数组中falsy值的计数

函数零点计数(arr){
返回arr.filter(elem=>!elem).length;
}

log(零计数([2,3,0,5,0,2,0])下面的方法有助于返回数组中falsy值的计数

函数零点计数(arr){
返回arr.filter(elem=>!elem).length;
}
log(零计数([2,3,0,5,0,2,0])
[2,3,0,5,0,2,0]。过滤器(x=>x==0)。长度
??遵循以下链接:
[2,3,0,5,0,2,0]。过滤器(x=>x==0)。长度
??遵循以下链接: