简体   繁体   English

angularJS forEach的条件

[英]WHERE condition on angularJS forEach

Is it possible to apply a WHERE condition in an angularJS forEach loop? 是否可以在angularJS forEach循环中应用WHERE条件?

angular.forEach(i.menu_modifier_groups, function(group) {
    var count = 0;
    angular.forEach(group.menu_modifier_items, function(item) {
        count += item.selected ? 1 : 0;
    });
    if (count == group.max_selection_points) {
        IsAllSelected = true;
    } else {
        //if one item failed All select do return false
        IsAllSelected = false;
    }
});

I want to apply a WHERE condition to tell angular the items to loop through. 我想应用WHERE条件来告诉要循环的项目angular

i.menu_modifier_groups WHERE group.min_selection_points > 0 for example. i.menu_modifier_groups WHERE group.min_selection_points > 0例如。

Thanks. 谢谢。

You can use filter to get filtered data. 您可以使用过滤器获取过滤数据。 Ie like I .menu_modifier_groups.filter ( function...) 即像我.menu_modifier_groups.filter(函数...)

Please find below a small working example. 请在下面找到一个小的工作示例。

var arr = [];

var obj = {x: 54, y: 10};
arr.push(obj);
var obj1 = {x: 14, y: 10};
arr.push(obj1);

var finalAccrualRows = arr.filter(function (object) {
                        return object.x===54?false:true;
                    });
alert(finalAccrualRows.length);

So for your case it would be like 所以对于你的情况

var finalGroups = i.menu_modifier_groups.filter(function (group) {
return (group.min_selection_points > 0)?true:false;
});

It is simply a list.filter() function to filter the list, Hope this should help you. 它只是用于过滤列表的list.filter()函数,希望这对您有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM