TS / JS使用for循环内部中断迭代函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TS / JS使用for循环内部中断迭代函数相关的知识,希望对你有一定的参考价值。

我遇到了打破迭代循环的问题,如果条件满足则返回false。

我实际上要做的是检查被动形式是否为空:

 public isEmpty(form: AbstractControl): boolean {
    if (form instanceof FormGroup) {
      for (const key of Object.keys(form.controls)) {
        if (key !== 'modalite') {
          const control = form.get(key);
          if (control instanceof FormGroup) {
            this.isEmpty2(control);
          } else {
            if (control.value && control.value !== '') {
              return false;
            }
          }
        }
      }
    } else {
      if (form.value && form.value !== '') {
        return false;
      }
    }

    return true;
  }

问题是我的返回false是打破for循环但继续迭代,所以我总是返回true。我想要做的是,如果一个formcontrol不为空,我想返回false并打破for循环和迭代功能。谢谢。

答案

我认为,最好使用必需的验证器而不是迭代控件。

const control = new FormControl('', Validators.required);
console.log(control.value);      // ''
console.log(control.status);     // 'INVALID'

见:https://angular.io/api/forms/FormControl

以上是关于TS / JS使用for循环内部中断迭代函数的主要内容,如果未能解决你的问题,请参考以下文章

for循环与forEach循环的区别

node.js 回调获取变量的意外值

#9.5课堂JS总结#循环语句函数

中断for循环后如何重置指针

Rust 中的命名中断 for 循环

函数进阶之迭代器,递归