使用通配符选择所有对象

时间:2016-08-23 03:20:28

标签: javascript angularjs json

我正在使用Angular选择几个对象,所有对象都使用3个键,以相同的键开头和结尾,它们的值也相同,只有中间键不同。

$scope.foo.one.bang = true;
$scope.foo.two.bang = true;
$scope.foo.three.bang = true;
$scope.foo.four.bang = true;
$scope.foo.five.bang = true;

是否有内置的快捷方式在第二个键中使用通配符来选择所有相关对象,如下例所示?:

$scope.foo.[any].bang = true;

2 个答案:

答案 0 :(得分:0)

请尝试这一点,首先我们将所有设置为" true"然后使用angular.forEach将all设置为false。

 $scope.foo ={}
    $scope.foo.one={}
    $scope.foo.two={}
    $scope.foo.three={}
    $scope.foo.four={}
    $scope.foo.five={}
    $scope.foo.one.bang = true;
    $scope.foo.two.bang = true;
    $scope.foo.three.bang = true;
    $scope.foo.four.bang = true;
    $scope.foo.five.bang = true;

    angular.forEach($scope.foo, function(value, key) {
        value.bang=false
      console.log(value.bang);
    });

答案 1 :(得分:0)

Angular.js中没有内置方法来执行此操作。您可以使用Angular.forEach循环,但它与纯Javascript非常相似。实现您想要的最简单方法是使用简单的迭代循环。

var obj = $scope.foo;
var objs = [];

for(let i in obj) if(obj[i].bang === true) objs.push(bang[i]);

console.log(objs); // All objects with that property