I often deal with both: (1) arrays of indexes of some other array; (2) bitmasks of some other array.
I can use the array of indexes to delete positions inplace with:
deleteat!(array, array_of_indexes_of_first_array)
but I cannot do the same with a bitarray:
deleteat!(array, bitarray_of_same_size_as_first_array) # error
filter!(bitarray_of_same_size_as_first_array, array) # error
I need to update the object, not just change bindings, so I cannot:
array = array[bitarray_of_same_size_as_first_array]
I can do this however:
deleteat!(array, keys(array)[bitarray_of_same_size_as_first_array])
but it makes me wonder if there is a standard library method that I am overlooking.