Hi,
We have an expression rule (see below image). We want to get the indices of numbers from the array (local!numberList) that would not make the local!initialValue negative when added together.
The result we are expecting from the sample values in the image is: {1, 2, 3, 5}
If we have local!initialValue = 100 & local!numberlist = {5, 100, 15, 100, 25}, the result should be: {1, 3, 5}
We're having a hard time thinking of the way we can do this. Would gladly appreciate your help.
Discussion posts and replies are publicly visible
Code
a!localVariables( local!a:100, local!array:{5,100,15,100,25}, reject( fn!isnull, a!forEach( items: local!array, expression: a!localVariables( local!Boolean:if( fv!isFirst, {fv!item<100}, a!forEach( items: enumerate(fv!index-1)+1, expression: local!a-sum(index(local!array,enumerate(fv!item)+1,0))>0 ) ), local!currentItem:fv!item, local!BooleanSum:if( fv!isFirst, 0, sum(a!forEach( items: local!Boolean, expression: if( fv!item, index(local!array,fv!index,{}), 0 ) )) ), if( local!a-sum(local!BooleanSum,local!currentItem)>0, fv!index, null() ) ) ) ) )
result
Woah, I didn't know this. Thank you so much!