【发布时间】:2016-04-27 08:47:19
【问题描述】:
我有一个 JSON 文件并对其进行迭代。如果有一列名为 "validation" : {"required"} 然后我在变量中添加一个计数,如下所示:
for (var a= 0; a<66; ++a) {
var requiredFieldsInPart = 0;
for (var b=0; b<$scope.groups[a].sections[0].fields.length; ++b) {
try {
throw console.log($scope.groups[a].sections[0].fields[b]["validations"]["required"]);
}
catch (e) {
console.log(e);
}
requiredFieldsInPart += 1;
}
我使用 try/catch 的原因是如果有错误我想通过。有些对象没有“validations”属性,所以会导致错误。
假设一个部分共有 21 个字段,其中 19 个字段具有 "validations",2 个字段没有 "validations"。所以requiredFieldsInPart 应该返回 19。但是,它现在返回 21。如何确保它只计算 "validations" 的对象??
【问题讨论】:
-
我认为您不了解 try、catch 和 throw 的工作原理......
-
这是一个非常复杂的简单任务方法。你可以只做
if( $scope.groups[a].sections[0].fields[b].validations && $scope.groups[a].sections[0].fields[b].validations.required ) { requiredFieldsInPart++; }并离开try/catch。 -
@lerouche 你能解释一下我做错了什么吗?
-
首先,什么是$scope?它是一个 jQuery 对象吗?
-
其次,您如何通过
throwing 在每次迭代中避免错误?
标签: javascript json validation