迭代 JSON 文件并且未在 Javascript 中正确返回结果

Iterating JSON file and not returning result correctly in Javascript

本文关键字:返回 结果 Javascript 文件 JSON 迭代      更新时间:2023-09-26

我有一个JSON文件并对其进行迭代。如果有一个名为"validation"的列:{"必需"},那么我在变量中添加一个计数,如下所示:

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"的对象?

我会继续过滤源数组并返回结果的大小:

return $scope.groups.filter(group =>
                             group.sections[0].fields[b].validations && 
                             group.sections[0].fields[b].validations.required
                           ).length
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);
         }             
         }
}