javascript - 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,但它返回undefined。我究竟做错了什么?

时间:

不能在forEach语句中使用return。

通常你要使用some() 。


function check(arr, el) {


 let found = false;


 arr.forEach((element) => {


 console.log(element)


 if (element === el) {


 found = true;


 }


 });


 return found;


}



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

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))


function check(arr, el) {



 let found = false;



 arr.forEach((element) => {


 console.log(element)


 if (element === el){


 found = true;


 }


 })



 return found;


}



...