首页 > 解决方案 > JavaScript:使用 forEach 查看数组是否包含特定的数值

问题描述

我有下面的代码。在这种情况下,我有意尝试使用 forEach。

function check(arr, el) {

  arr.forEach((element) => {

    console.log(element)

    if (element === el) {

       return true
    }
  })
}

check([1, 2, 3, 4, 5], 3)

我期望代码返回 true,因为 el 值 3 在数组中。但相反,它返回未定义。我究竟做错了什么?

标签: javascriptarraysfunctioninputelement

解决方案


forEach返回任何内容(表示未定义),您可以使用一些

function check(arr, el) {
  return arr.some( element => element === el)
}

console.log(check([1, 2, 3, 4, 5], 3))

如果你想使用forEach比使用变量来存储值,而不是稍后从函数返回

function check(arr, el) {
  let found = false
  
  arr.forEach((element) => {
    if (element === el && !found){
      found = true
    }
  })
  return found
}



console.log(check([1, 2, 3, 4, 5], 3))


推荐阅读