我有一个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的原因是因为如果出现错误我想通过。有些对象没有“验证”属性,因此导致错误。
假设一个部分共有21个字段,其中19个有"validations"
,2个没有"validations"
。所以requiredFieldsInPart
应该返回19.但是,它现在返回21。如何确保它只计算具有"validations"
??
答案 0 :(得分:0)
我将继续过滤源数组并返回结果的大小:
return $scope.groups.filter(group =>
group.sections[0].fields[b].validations &&
group.sections[0].fields[b].validations.required
).length
答案 1 :(得分:-2)
for (var a= 0; a<66; ++a) {
var requiredFieldsInPart = 0;
for (var b=0; b<$scope.groups[a].sections[0].fields.length; ++b) {
try {
console.log($scope.groups[a].sections[0].fields[b]["validations"]["required"]);
requiredFieldsInPart += 1;//put this line inside 'try' block will do
} catch (e) {
console.log(e);
}
}
}