Почему total.push is not a function? Массив же
Метод push массивов возвращает новое значение длины массива, относительно которого этот метод был вызван. Коллбэк редьюса должен возвращать накопленное значение, в твоем случае это total, но вместо этого ты возвращаешь длину массива, а это число, у него нет метода push