获取第一个和最后一个启用的项

时间:2016-12-23 18:42:45

标签: javascript angularjs loops angularjs-directive scope

我想获取第一个和最后一个启用的项目或来自对象的disabled = false

我试过了:

$scope.firstEnabled = function(obj) {
    for(var i = 0; i < obj.length; i++){
        if(obj[i].disabled == false){
            return i;
        }
    }
};

JSFiddle Demo

这适用于获取第一个启用的项目,我可以做类似的事情来获取最后一个..但是,我的问题是我想在一次迭代中完成这两件事而不是2个不同的函数和2个不同的迭代。

1 个答案:

答案 0 :(得分:2)

查找首次启用

var first = false;
 if (!first) {
    $scope.firstEnabled = obj[i];
          first = true;
        };

要查找上次启用,只需在禁用时为每次迭代分配

$scope.lastEnabled = obj[i];

你可以这样做

    var first = false;
    for (var i = 0; i < obj.length; i++) {
      if (obj[i].disabled == false) {
        if (!first) {
          $scope.firstEnabled = obj[i];
          first = true
        };
        console.log(i);
        $scope.lastEnabled = obj[i];
      }
    }

JSFIDDLE