繁体   English   中英

如何比较所有嵌套的子元素长度?

[英]How to compare all nested child elements length with each other?

我有一个包含嵌套子的对象,如下所示:

$scope.artists.materials.items[] //contains list of items

现在我会有几个艺术家将包含项目列表,但在此我想检查每个艺术家项目的总长度,如果发现不匹配,那么我想返回真或假。

例如 :我有2个艺术家,从这个Artist1包含2个项目,Artist2只包含1个项目然后这是一个不匹配,因为我想让艺术家包含相同数量的项目。

但在这里,我对如何以AngularJS方式进行所有这些比较感到困惑。

码:

 function checkItemsValidity() {
        angular.forEach($scope.artists, function (artist) {
            alert(artist.materials.items.length);
        });
    }

我怎样才能更好地做到这一点?

如果所有艺术家必须拥有相同数量的items ,那么只需存储第一位艺术家的items长度,并确保所有这些items都具有相同的items长度。 就像是:

更新了评论中的建议

function checkItemsValidity() {
    var itemsLength = $scope.artists[0].materials.items.length;
    angular.forEach($scope.artists, function (artist) {
        if(artist.materials.items.length != itemsLength) {
            return false;
        }
    });
    return true;
}

Lex答案的改进:如果找到第一个差异,如果没有理由通过其余部分,则不需要isValid变量。

function checkItemsValidity() {
  var len = $scope.artists[0].materials.items.length;
  for (var i = 0; i < $scope.artists.length; i++) {
    if ($scope.artists[i].materials.items.length != len) {
      return false;
    }
  }
  return true;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM