Insert item in middle of roArray
Push and pop are great but what if you need to insert an item in the middle or an array without overwriting the item?
sub main()
list = [1,2,3,4]
' Expectresult: [1,"foo",2,3,4]
print arrayInsert( list, "middle", 1 ) : printList( list )
list = [0,1,2,3,4]
print arrayInsert( list, "first", 0 ): printList( list )
list = [0,1,2,3,4]
print arrayInsert( list, "beforeLast", 4 ): printList( list )
list = [0,1,2,3,4]
print arrayInsert( list, "last", 5 ): printList( list )
list = []
print arrayInsert( list, "empty", 0 ): printList( list )
list = [0]
print arrayInsert( list, "at-last", 0 ): printList( list )
list = [0]
print arrayInsert( list, "tail", 1 ): printList( list )
list = [0]
print arrayInsert( list, "too-high", 2 ): printList( list )
end sub
' This function mutates the list
function arrayInsert( list, newItem, insertIndex% ) as boolean
' Index out of bounds
if insertIndex% < 0 or insertIndex% > list.count() then
print "Item index out of bounds"
return false
end if
' List is empty or inserting at last item
if list.count() = insertIndex% then
list.push(newItem)
return true
end if
tempList = []
for i = 0 to list.count() - 1
if i = insertIndex% then
tempList.push( newItem )
end if
tempList.push(list[i])
end for
list.clear()
list.append(tempList)
tempList.clear()
tempList = invalid
return true
end function
sub printList( list )
print "[ ";
for each item in list
print item; " ";
end for
print " ]"
print
end sub