const priceType = ['monthly', 'annual'];
var discounts =[
{product: "A", monthlyDiscount : 15.0, monthlyMaxDiscount: 30.0, annualDiscount : 25.0, annualMaxDiscount : 20.0},
{product: "B", monthlyDiscount : 5.0, monthlyMaxDiscount: 20.0, annualDiscount : 40.0, annualMaxDiscount : 30.0}
]
var exceedsDiscount;
If any of my discount objects exceeds max discount I need to set the Boolean as true and stop checking other array items.
I used for loops and this works as expected :
exceedsDiscount = false;
angular.forEach(priceType, function(type){
angular.forEach(discounts, function(discount){
if(discount[`${type}Discount`] > discount[`${type}MaxDiscount`]){
exceedsDiscount = true;
return;
}
});
If I try to use the every and some arrow functions the outcome is not same. It randomly gives true or false. Any idea how I can do using without using two for loops?
exceedsDiscount = false;
exceedsDiscount = priceType.every(type => discounts.some(discount =>{return discount[`${type}Discount`] > discount[`${type}MaxDiscount`];}));
some(... some(, notevery(... some(