首页 > 解决方案 > 如何检查是否少于 3 个变量中的 2 个为空

问题描述

在运行脚本之前,我需要检查至少有 2 个值,但似乎无法触发条件。

当我使用if (risForm) {...脚本在risForm填充时运行,当我使用if (!(risForm)) {...脚本运行时如果risForm为空,但我似乎无法弄清楚如何检查三个中的任何两个是否已满......我试过这个:

if ((!(risForm)) + (!(runForm)) + (!(angForm)) < 2) {...

以及对精确格式/括号的大量调整,但这并没有让我到任何地方!

标签: javascriptif-statement

解决方案


创建一个变量数组,按 过滤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');
}

推荐阅读