在angular.js控制器中过滤和计数数组

时间:2015-08-02 06:43:27

标签: javascript angularjs

我的Angular应用程序中有一个对象数组,每个对象都有一个“就绪”字段,这是一个时间戳。我想计算就绪时间戳早于当前时间的对象数。我该怎么做?

我有:

$scope.getDatetime = new Date();
$scope.numberReady = $filter('filter')($scope.array, {ready <  $scope.getDatetime}).length;

显然我不能使用ready < $scope.getDatetime,但从逻辑上讲,这就是我想要做的事情。

1 个答案:

答案 0 :(得分:2)

你可以使用纯ES5过滤方法,这里不需要Angular:

$scope.getDatetime = new Date();
$scope.numberReady = $scope.array.filter(function(obj) {
    return obj.ready < $scope.getDatetime;
}).length;

...虽然你也可以在这里使用Angular过滤器:

$scope.getDatetime = new Date();
$scope.numberReady = $filter('filter')($scope.array, function(obj) {
    return obj.ready <  $scope.getDatetime;
}).length;

但由于它只是原生物的包装,在这种情况下这并不理想。