为什么这个函数在返回true时返回false?

时间:2018-05-30 14:51:09

标签: javascript arrays vue.js

我有一个简单的代码库,少于30行,它有一个名为disable()的函数,它验证另一个数组内的数组内部的数组值(绑定到复选框)和如果是,则返回true:

  • 或选中多个复选框
  • 选中
  • 一个复选框,其值为null

这里的功能是:

disable() {
  if (!this.checked_y.length) {
    return true;
  }
  this.checked_y.forEach(year => {
    year.specs.forEach(sp => {
      if (sp.spec == null) {
        return true;

      }
    });
  });
  return false;
}

您可以找到完整的代码here

1 个答案:

答案 0 :(得分:3)

您无法从内部回调返回外部函数,但可以对嵌套数组使用Array#some,如果为短路则返回true。

function disable() {
    return !this.checked_y.length
        || this.checked_y.some(year => year.specs.some(sp => sp.spec == null));
}