Hi all,
{1,2,3,8,9,9,9,9,9,80,90,70}, {56,76,54,32}, {20,23,45,54,32,54}, {1,2,3,4,5,6,7}, {11,12,13,14,15,16,17,18} Please suggest how do this using foreach function get output like this,
length of array 1 is 12length of array 2 is 4length of array 3 is 6length of array 4 is 7length of array 5 is 8
Thank You In Advance
Discussion posts and replies are publicly visible
I tried this but appian doesn't consider multiple arrays in a single array as list of lists. Appian is considering it as a single list
Appian will take this as a single list of integers. To achieve what you want, the best solution I can think of is making a map for all individual arrays and then iterating over it using the keys.
a!localVariables( local!arrays: a!map( 1: {1,2,3,8,9,9,9,9,9,80,90,70}, 2: {56,76,54,32}, 3: {20,23,45,54,32,54}, 4: {1,2,3,4,5,6,7}, 5: {11,12,13,14,15,16,17,18} ), a!forEach( items: a!keys(local!arrays), expression: "Length of array " & fv!index & " is " & length(local!arrays[fv!item]) ) )
An alternative approach is to use the merge() function to generate a "list of lists" and use the length() function (which ignores null values in its counts):
a!localVariables( local!myArray: fn!merge( /*{ 1, 2, 3, 8, 9, 9, 9, 9, 9, 80, 90, 70 },*/ /*{ 56, 76, 54, 32 },*/ /*{ 20, 23, 45, 54, 32, 54 },*/ /*{ 1, 2, 3, 4, 5, 6, 7 },*/ /*{ 11, 12, 13, 14, 15, 16, 17, 18 }*/ { 1, 56, 20, 1, 11 }, { 2, 76, 23, 2, 12 }, { 3, 54, 45, 4, 14 }, { 8, 32, 54, 4, 14 }, { 9, null, 32, 5, 15 }, { 9, null, 54, 6, 16 }, { 9, null, null, 7, 17 }, { 9, null, null, null, 18 }, { 9, null, null, null, null }, { 80, null, null, null, null }, { 90, null, null, null, null }, { 70, null, null, null, null } ), a!forEach( items: local!myArray, expression: fn!length(fv!item) ) )
One more solution I found to this problem is using merge() function. The code is attached below.
a!localVariables( local!arr: merge( { 1, 2, 3, 8, 9, 9, 9, 9, 9, 80, 90, 70 }, { 56, 76, 54, 32 }, { 20, 23, 45, 54, 32, 54 }, { 1, 2, 3, 4, 5, 6, 7 }, { 11, 12, 13, 14, 15, 16, 17, 18 } ), local!size: { a!forEach( items: local!arr[1], expression: a!localVariables( local!temp: fv!index, a!forEach( items: enumerate(length(local!arr)) + 1, expression: if( a!isNullOrEmpty(local!arr[fv!item][local!temp]), 0, 1 ) ) ) ) }, a!forEach( items: local!size, expression: "length of array " & fv!index & " is " & sum(fv!item) ) )