javascript - Javascript 查询(Callback 和 forEach)
问题描述
因此,我尝试使用 forEach 编写一个名为 count(arr, callback) 的函数。
理论上,它应该返回回调为真的元素的数量。
count([1, 2, 3, 4], (e) => e === 3)
预期:1 但得到:0
count([1, 2, 3, 4], (e) => e > 1)
预期:3 但得到:0
count([2, 1, 4, 5, 2, 8], (e) => e === 2)
预期:2 但得到:0
这是我正在运行的代码:
function count(arr, callback) {
let values = 0;
arr.forEach(callback) ? values++ : values;
return values;
}
解决方案
使用filter
:
const count = (arr, c) => arr.filter(c).length;
console.log(count([1, 2, 3, 4], (e) => e === 3))
console.log(count([1, 2, 3, 4], (e) => e > 1))
console.log(count([2, 1, 4, 5, 2, 8], (e) => e === 2))
推荐阅读
- laravel - 尝试插入数据时收到此错误消息将 [name] 添加到可填充属性以允许在 [App\Suitspecialist] 上进行批量分配
- java - 无法序列化将 java POJO 类转换为字节数组
- python - Python将字符串转换为忽略特殊字符的列表
- php - Php qr 代码生成器与 utf-8 短语一起工作很奇怪
- python - 如何修复我的 pygame 脚本中的运动?
- javascript - 添加指向打开新窗口 URL 的表行的链接
- c# - 从 List 对象中添加和删除项目是否安全?
- python - 同一继承模块的Odoo12多树视图
- c - VS2017 Nuget pthread LNK1120 未解决
- php - 为什么我不能使用 blowfisch 和 PHP 7.x 使用 opnssl 解密 mcrypt 加密文本