Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
如何使用for-each循环根据使用JavaScript的给定回调计算数组中出现的次数?_Javascript_Arrays_Foreach_Count_Callback - Fatal编程技术网

如何使用for-each循环根据使用JavaScript的给定回调计算数组中出现的次数?

如何使用for-each循环根据使用JavaScript的给定回调计算数组中出现的次数?,javascript,arrays,foreach,count,callback,Javascript,Arrays,Foreach,Count,Callback,我需要帮助创建一个count函数,该函数返回回调为true的元素数 例如,如果数组和回调如下所示: 计数([1,2,3,4],(e)=>e==3); 预期的答案是1 或者如果数组和回调如下所示: 计数([],(e)=>e=='d'); 预期结果为0 如何创建此计数函数?它必须为每个循环使用一个过滤器。假设您引用的是同步回调(如示例中所示),那么内置的[]过滤器本质上就是为您这样做的 let count=(数组,谓词)=>array.filter(谓词).length; log(计数([1,2,

我需要帮助创建一个count函数,该函数返回回调为true的元素数

例如,如果数组和回调如下所示: 计数([1,2,3,4],(e)=>e==3); 预期的答案是1

或者如果数组和回调如下所示: 计数([],(e)=>e=='d'); 预期结果为0


如何创建此计数函数?它必须为每个循环使用一个过滤器。

假设您引用的是同步回调(如示例中所示),那么内置的
[]过滤器本质上就是为您这样做的

let count=(数组,谓词)=>array.filter(谓词).length;

log(计数([1,2,3,4,3,2,1],(e)=>e>=3))假设您引用的是同步回调(如示例中所示),那么内置的
[]过滤器本质上就是为您做这件事的

let count=(数组,谓词)=>array.filter(谓词).length;

log(计数([1,2,3,4,3,2,1],(e)=>e>=3))只要保留每次谓词返回true时递增的计数即可

函数计数(arr、pred){
让计数=0;
arr.forEach(x=>{
if(pred(x))++计数;
});
返回计数;
}

log(计数([1,2,3,4],(e=>e==3))只要保留每次谓词返回true时递增的计数即可

函数计数(arr、pred){
让计数=0;
arr.forEach(x=>{
if(pred(x))++计数;
});
返回计数;
}

log(计数([1,2,3,4],(e=>e==3))让计数=0;[1,2,3,4].forEach(x=>x==3?count++:null)请向我们展示您解决此练习的尝试。你被困在哪里?让计数=0;[1,2,3,4].forEach(x=>x==3?count++:null)请向我们展示您解决此练习的尝试。你被困在哪里?我建议
sum+!!pred(x)
只是为了确保它是一个被计数的布尔值。我建议
sum+!!pred(x)
只是为了确保它是一个已计数的布尔值。