编写javascript函数计数(arr、回调)。它应该返回回调(箭头函数)为true的元素数

编写javascript函数计数(arr、回调)。它应该返回回调(箭头函数)为true的元素数,javascript,callback,arrow-functions,Javascript,Callback,Arrow Functions,例如: count([2,1,4,5,2,8],(e)=>e==2)//预期为:2 计数([1,2,3,4],(e)=>e>1)//应为:3 还需要使用forEach 我所拥有的: function count(arr, callback) { let values = 0 arr.forEach(cb ? values++ : values + 0) return values } 但这不起作用。有什么建议吗 首先,forEach需要传递一个函数 arr.forEach((it

例如:

count([2,1,4,5,2,8],(e)=>e==2)//预期为:2
计数([1,2,3,4],(e)=>e>1)//应为:3
还需要使用forEach

我所拥有的:

function count(arr, callback) {
  let values = 0
  arr.forEach(cb ? values++ : values + 0)
  return values
}

但这不起作用。有什么建议吗

首先,
forEach
需要传递一个函数

arr.forEach((item) => { 
...
})
此外,未定义变量
cb
。您的参数被称为
callback

我已使用以下更改更新了您的示例:

function count(arr, callback) {
  let values = 0
  arr.forEach((item) => {
    callback(item) ? values++ : values + 0
  })

  return values
}
单线解决方案:

const count = (array, callback) => array.filter(callback).length

您必须将函数传递给
.forEach()
。如果答案对您有帮助,您应该“接受”它;这将标志着你的问题已经解决,也会给你和回答者一些声誉-