首页 > 解决方案 > 为什么这个函数应该返回true时返回false?

问题描述

我有一个不到 30 行的简单代码库,它有一个名为disable()where 的函数,用于验证另一个数组内的数组内的数组值是否存在(绑定到复选框),如果出现以下任一情况,则返回 true:

这是功能:

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;
}

你可以在这里找到完整的代码

标签: javascriptarraysvue.js

解决方案


您不能从内部回调中返回外部函数,但您可以使用Array#some嵌套数组并在短路时返回 true。

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

推荐阅读