我有一个我从REST API
获取的对象......
我想遍历一个内部数组,检查一个属性,如果该属性是true
,则从该项中获取第二个属性。
这是数组;
orderItem: {
id: 159
name: Empanadas (Choice of 2)
description: Choice of Diced Beef; Spinach, Stilton and Onion; or Smoked Ham and Mozzarella
price: 700
available: 1
created_at: 2016-01-31 16:50:31
updated_at: 2016-01-31 16:50:31
menu_category_id: 41
restaurant_id: 11
menu_modifier_groups:
[ {
id: 9
name: Choose 2 Empanadas
instruction: null
min_selection_points: 2
max_selection_points: 2
force_selection: 1
created_at: 2016-02-01 01:03:35
updated_at: 2016-02-01 01:12:23
menu_item_id: 159
restaurant_id: 11
menu_modifier_items:
[ {
id: 34
name: Diced Beef
price: 0
created_at: 2016-02-01 01:04:08
updated_at: 2016-02-01 01:04:08
menu_modifier_group_id: 9
restaurant_id: 11
menu_item_id: 159
selected: false
} , {
id: 35
name: Smoked Salmon & Mozzarella
price: 0
created_at: 2016-02-01 01:04:37
updated_at: 2016-02-01 01:04:37
menu_modifier_group_id: 9
restaurant_id: 11
menu_item_id: 159
selected: true
} , {
id: 36
name: Stilton, Spinach and Onion
price: 0
created_at: 2016-02-01 01:05:05
updated_at: 2016-02-01 01:05:05
menu_modifier_group_id: 9
restaurant_id: 11
menu_item_id: 159
selected: false
} ]
} ]
}
我想要做的是找到menu_modifier_items
= selected
的所有true
获取price
每个人将它们加在一起,最后将它们添加到{{} 1 {} price
。
orderItem
这是我到目前为止所拥有的;
all menu_modifier_items price + orderItem price
在我的代码中,$scope.calculatePrice = function(orderItem) {
var tot = orderItem.price;
angular.forEach(orderItem.menu_modifier_groups[0].menu_modifier_items,function(item){
if(item.selected == true) {
tot+=item.price;
}
return "Add for " + "₦" + tot;
});
}
这意味着我正在获取第一个数组,但如果menu_modifier_groups[0]
有多个orderItem
会怎么样?如果我有menu_modifier_groups
,menu_modifier_groups[0]
等...
感谢任何帮助/指导。
答案 0 :(得分:2)
你只需要将2 forEach
嵌套在一起 - 循环遍历组,然后遍历当前组内的项目:
$scope.calculatePrice = function(orderItem) {
var tot = orderItem.price;
angular.forEach(orderItem.menu_modifier_groups, function(group) {
angular.forEach(group.menu_modifier_items, function(item) {
if(item.selected == true) {
tot+=item.price;
}
});
});
return "Add for " + "₦" + tot;
}