Javascript 使用通配符选择所有对象
我使用Angular来选择几个对象,所有对象都使用3个关键点,以相同的关键点开始和结束,它们的值也相同,只是中间的关键点不同Javascript 使用通配符选择所有对象,javascript,angularjs,json,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.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;
请尝试此操作,首先我们将所有设置为“true”,然后使用angular.forEach将所有设置为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);
});
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
嗯,你可以使用
angular.forEach
loop。我不知道angular,但在普通的JS中可能类似于:Object.keys($scope.foo).forEach(k=>$scope.foo[k].bang=true)代码>(使用箭头功能显然是可选的)。