[pshaiCmd] ArrayRemove

0 142 Views No Comments 2 months ago
  • Simple custom command to remove a cell from an array.

    Usage testample:

    local testArr1 = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'}
    local testArr2 = {1, 2, 3, 4, 5, 6, 7, 8, 9}
    
    local result1 = CC_ArrayRemove(testArr1, 4)
    local result2 = CC_ArrayRemove(testArr2, 4)
    local result3 = CC_ArrayRemove(testArr1, 1)
    local result4 = CC_ArrayRemove(testArr2, #testArr2)
    
    Log(result1) -- missing 'd'
    Log(result2) -- missing '4'
    Log(result3) -- missing 'a'
    Log(result4) -- missing '9'
    HaasScript Code
    DefineCommand('ArrayRemove', 'Removes a cell from array, pointed at with an index')
    
    local input = DefineParameter(ListDynamicType, 'input', 'The array', true, ClosePrices())
    local index = DefineParameter(NumberType, 'index', 'Index of the cell to be removed. Must be >0 (higher than zero).', true, 1)
    
    
    if #input == 0 then
        LogError('CC_ArrayRemove: Array contains no cells!')
    end
    
    if index <= 0 then
        LogError('CC_ArrayRemove: Index must be higher than zero (>0).')
    end
    
    local temp1 = Grab(input, 0, index-1)
    local temp2 = Grab(input, index, #input - index)
    local result
    
    if #temp1 == 0 then
        result = temp2
    elseif #temp2 == 0 then
        result = temp1
    else
        result = ArrayConcat(temp1, temp2)
    end
    
    DefineOutput(DynamicType, result, 'Array')
Login or Register to Comment

Unlock your crypto trading potential

Create a free account and enjoy everything we have to offer.

Join for Free