as @pdeffebach said, skipmissing doesn’t allocate by default, also I want to comment on ‘wishing map can skip elements’. Notice when you map, the length of the output array is known - same as the mapped over array. Potentially the type is also stable, this allows efficient parallelism potential. What you want (skip elements, causing the outcome array to be length-varying), is basically equivalent to push!() since you add elements into the array on a case by case basis (also that because order depends on what is missing what is not, it’s no longer trivially parallel)