Arrays in JXN

array operators

{}-operator (array construction)

constructs an array from elements: da = { 2., 3., 5. } ! double[3] array ia = { i1 : i2 } ! int array with all numbers between i1 and i2 (included!) ! if i1 > i2 => descending values: i1, i1-1 ... i2 (included) oa = { t, j, 3., ia } ! Object[4] array iaa = { { 11, 12, 13 }, { 21, 22, 23 } } ! int[2][] array

[]-operator (see JxnPortable/docs/)

- arr[i] array access arr[ia] -> { arr[ ia[0] ], arr[ ia[1] ] ... arr[ ia[ length(ia) - 1 ] ] } arr[{ i1, i2, i3 }] -> { arr[i1], arr[i2], arr[i3] } arr[ i1 : i2 ] ! ~shortcut of arr[{ i1 : i2 }], reverse order if i1 > i2 arr[ i1 : ] -> { arr[i1], arr[i1+1] ... arr[ length(arr) - 1 ] } negative array index i < 0: arr[i] -> arr[ length(arr) - (-i) ] e.g. { 2, 3, 5, 7 }[-2] returns 5 - obj[x] access obj[x] maps to obj.get(x) obj[arr] -> obj.get( arrType[] ) if defined -> else auto array: { obj.get( arr[0] ), obj.get( arr[1] ) ... obj.get( arr[ length(arr) - 1 ] ) } obj[{ i1, i2, i3 }] -> { obj.get( i1 ), obj.get( i2 ), obj.get( obj.get( i3 ) ) } obj[ i1 : i2 ] ! ~shortcut of obj[{ i1 : i2 }], reverse order if i1 > i2 if obj.get(int) and obj.size() defined: obj[ i1 : ] -> { obj.get( i1 ), obj.get( i1 + 1 ) ... obj.get( obj.size() - 1 ) } negative index i < 0: obj[i] -> obj( obj.size() - (-i) )

automatic array processing (auto array)