Why use reduce? The return value is always target so using reduce just adds extra churn.

Also, using a C style for loop is much faster.