当前位置:  开发笔记 > 编程语言 > 正文

对于循环数组不会返回正确的结果

如何解决《对于循环数组不会返回正确的结果》经验,为你挑选了0个好方法。

我比较数组变量:$scope.object.id 并$scope.groepen.id用一个for循环之后的if语句.如果$scope.object.id 与其中一个ID完全相同$scope.groepen.id,那么它应该使该索引为$scope.overlap true.

我正在使用另一个,如果检查是否有任何事情$scope.overlap是真的.如果一个元素$scope.overlap 是真的,它将成为$scope.bestaand现实.否则它应该是假的.

for (var i = 0; i < $scope.groepen.length; i++) {
  if ($scope.object.id === $scope.groepen[i].id) {
    $scope.overlap[i] = true;
    if ($scope.overlap[i]) {
      $scope.bestaand = true;
    }
    else {
      $scope.bestaand = false;
    }
  }
  else {
    $scope.overlap[i] = false;
  }
}

我的控制台日志显示我$scope.overlap 确实显示了正确的值(因此,如果没有相同的内容,则所有索引都为false).$scope.bestaand 如果某些东西是相同的,它会变为真,但它不会变回假.

我正在使用Angular表单验证来显示检查是否正常工作:

Deze groepsnaam bestaat al!

我在这做错了什么?

编辑:

我已经改变了我的if语句的位置.更新后的代码如下:

for (var i = 0; i < $scope.groepen.length; i++) {
  if ($scope.object.id === $scope.groepen[i].id) {
    $scope.overlap[i] = true;
  }
  else {
    $scope.overlap[i] = false;

  }
  if ($scope.overlap[i]) {
      $scope.bestaand = true;
      console.log("works")
  }
  else {
    $scope.bestaand = false;
    console.log("doesnt work")
  }
}

控制台日志向我显示:

在此输入图像描述

它似乎确实成了现实,但它被覆盖(我输入的值与数组的第二个值相同).如果我输入的值与数组的最后一个值相同,则确实有效.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有