Hi dear,
I have written code like in the picture, I just want to print the max no without using max function.
Discussion posts and replies are publicly visible
You can create a local variable of Map type and use to data subset to sort the array descending and get the 1st index value
a!localVariables( local!listOfInts: { a!map(num: 5), a!map(num: 6), a!map(num: 2), a!map(num: 1), a!map(num: 10), a!map(num: 7) }, index( index( todatasubset( local!listOfInts, a!pagingInfo(1, - 1, a!sortInfo("num", false())) ).data, "num", {} ), 1, {} ) )
Can't we achieve this by looping?
where you are looking for looping and why?
You could do this with looping, but max() is by far the easiest and fastest method. I would also be interested in the use case reasoning to avoid max().
deepakg's example with todatasubset() sorting is a commonly used solution for similar items as well.
Additionally, max value from nested a!forEach():
a!localVariables( local!list: {1,3,8,6,5,2}, index( reject( fn!isnull, a!forEach( items: local!list, expression: { a!localVariables( local!item: fv!item, if( count( wherecontains( true, a!forEach( items: local!list, expression: toboolean(fv!item<local!item) ) ) )=count(local!list)-1, fv!item, null ) ) } ) ), 1, null ) )
Max with sortintegerarray():
index( sortintegerarray({1,3,8,6,5},true), 1, null )