javascript - 为什么这个函数应该返回true时返回false?
问题描述
我有一个不到 30 行的简单代码库,它有一个名为disable()
where 的函数,用于验证另一个数组内的数组内的数组值是否存在(绑定到复选框),如果出现以下任一情况,则返回 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;
}
你可以在这里找到完整的代码
解决方案
您不能从内部回调中返回外部函数,但您可以使用Array#some
嵌套数组并在短路时返回 true。
function disable() {
return !this.checked_y.length
|| this.checked_y.some(year => year.specs.some(sp => sp.spec == null));
}
推荐阅读
- c# - .net 核心库中的 HttpContext 类
- javascript - 在合并图中订阅内部 Observable,这是不好的做法吗?
- java - 指向旧 git 位置的 tomcat 8.0 服务器
- javafx - Javafx 和 JSSC 串行通信
- sql - 如何检查表列中是否存在值?
- node.js - Nodejs - 如何查找用于请求的路由器?
- c - '未定义的对'函数'的引用
- java - 简化代码 - 检查字符串中的第一个字符以匹配字符列表
- python - Python按数组值对JSON进行排序
- python - 如何使用 docker Docker SDK for Python 获取容器大小