javascript - 如何检查是否少于 3 个变量中的 2 个为空
问题描述
在运行脚本之前,我需要检查至少有 2 个值,但似乎无法触发条件。
当我使用if (risForm) {...
脚本在risForm
填充时运行,当我使用if (!(risForm)) {...
脚本运行时如果risForm
为空,但我似乎无法弄清楚如何检查三个中的任何两个是否已满......我试过这个:
if ((!(risForm)) + (!(runForm)) + (!(angForm)) < 2) {...
以及对精确格式/括号的大量调整,但这并没有让我到任何地方!
解决方案
创建一个变量数组,按 过滤Boolean
,然后检查数组的长度:
const forms = [risForm, runForm, angForm];
if (forms.filter(Boolean).length < 2) {
throw new Error('Not enough forms are filled');
}
// rest of the code
如果需要,您可以通过使用来避免创建中间数组reduce
:
const filledFormCount = forms.reduce((a, form) => a + Boolean(form), 0);
if (filledFormCount < 2) {
throw new Error('Not enough forms are filled');
}
推荐阅读
- csv - .NET Core Web API 在 Reactjs 中返回 CSV
- kubernetes - 为什么 HPA 即使使用量没有达到阈值,也会扩大规模?
- ios - 在 AppleWatch 上记录用户在锻炼期间的路线
- azure - Azure DevOps 和逻辑应用 - 添加评论
- reactjs - Apollo UseMutation:TypeError:无法读取未定义的属性“数据”
- survival-analysis - ggsurvplot,错误(函数(...,row.names = NULL,check.rows = FALSE,check.names = TRUE,:
- sql - 更改 WPF 中现有 DataGridColumn 的日期格式
- php - Drupal 中的无效 CSRF 令牌获取私钥
- jestjs - 顺风复杂类(焦点等)和苗条项目中的笑话出错。仅在运行测试时
- asp.net - 授权属性与角色重定向到拒绝访问