AngularJS如何过滤数组中的元素

时间:2017-03-12 10:21:03

标签: javascript angularjs

我有这么大的

$scope.arrVaritions = [
    [1, 2, 3], 
    [4, 5, 6], 
    [7, 8, 9], 
    [1, 4, 7], 
    [2, 5, 8], 
    [3, 6, 9], 
    [1, 5, 9], 
    [3, 5, 7]
];

如何在此数组中找到元素索引?我使用此代码,但它不起作用:

$scope.elementId = 1;    
$filter('filter')($scope.arrVaritions, { $scope.elementId });

2 个答案:

答案 0 :(得分:2)

尝试以正确的方式过滤它,就像在此demo fiddle

中一样

视图

<div ng-controller="MyCtrl">
  {{filtered}}
</div>

AngularJS应用程序

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', function ($scope, $filter) {
    $scope.arrVaritions = [
        [1, 2, 3], 
        [4, 5, 6], 
        [7, 8, 9], 
        [1, 4, 7], 
        [2, 5, 8], 
        [3, 6, 9], 
        [1, 5, 9], 
        [3, 5, 7]
    ];

    $scope.elementId = 1;
    $scope.filtered = $filter('filter')($scope.arrVaritions, $scope.elementId, true);
});

如果您想过滤不是确切的值,只需删除第3个true选项:

$scope.filtered = $filter('filter')($scope.arrVaritions, $scope.elementId);

答案 1 :(得分:1)

它应该只有$scope.elementId而不是对象,第三个选项true才能匹配精确值。如果true考虑elementId1011等等,则会在没有100的情况下进行评估(它会包含检查)。

$filter('filter')($scope.arrVaritions, $scope.elementId, true);