编写一个 JavaScript 函数 count(arr,callback)。它应该返回回调(箭头函数)为 true 的元素数量

ju_*_*_ro -2 javascript callback arrow-functions

例如:

count([2, 1, 4, 5, 2, 8], (e) => e === 2)  // Expected: 2
count([1, 2, 3, 4], (e) => e > 1)          // Expected: 3
Run Code Online (Sandbox Code Playgroud)

还需要使用forEach

我拥有的:

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

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

But*_*key 6

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

arr.forEach((item) => { 
...
})
Run Code Online (Sandbox Code Playgroud)

另外,您的变量cb未定义。你的参数被称为callback

我已经用这些更改更新了您的示例:

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

  return values
}
Run Code Online (Sandbox Code Playgroud)