javascript - 为什么这个函数返回未定义?
问题描述
我想检查参数之一是否相等3
。如果确实如此,我想返回 true 但我得到了undefined
。这是为什么 ?
function isThree(...args){
args.forEach(val => {
if(val === 3){
return true;
} else{
return false;
}
})
};
console.log(isThree(1,2,3,4,5));
解决方案
与创建新范围但不在单独函数中执行的 for 循环不同,forEach 在单独函数中执行。即,从 forEach 处理程序内部返回也不会从外部函数返回。
let x = () => {
[1, 2, 3].forEach(v => {
console.log(v); // 1 2 3
return v;
})
return 0;
};
console.log(x()); // 0
let y = () => {
for (let v = 1; v <=3; v++) {
console.log(v); // 1
return v;
}
return 0; // never reached
};
console.log(y()); // 1
推荐阅读
- java - 打开特定活动时,Android 区域设置重置为默认语言
- python - 查找本地人姓名时出现 KeyError
- python - 如何在python中分组反转数组?
- c - 将 C 链接到 LLVM 中的对象
- cordova - 在 Google Play 商店中上传 apk 文件时出现 apksigner 错误 - MIN_SIG_SCHEME_FOR_TARGET_SDK_NOT_MET
- python - 如何在熊猫中对具有条件的列应用聚合函数
- docker - nginx docker 不重定向 gogs docker 容器
- python-3.x - 无法在 TTP(模板文本解析器)python 中访问以前的模板变量
- java - 如何使用 Mockito 框架模拟我的服务
- linux - tc(流量控制)是否适用于数据包或帧?