Use Higher-Order Functions map, filter, or reduce to Solve a Complex ProblemPassed

Hola, quería saber si podrían ayudarme con este ejercicio usando reduce():
Quisiera saber por qué usando el operador ternario si funciona correctamente, pero usando if me aparece este error.


const squareList = arr => {
  // Only change code below this line
    return arr.reduce((sqrIntegers, num) => {
      if (Number.isInteger(num) && num > 0) {
        sqrIntegers.concat(Math.pow(num, 2))
      }
  }, []);
  // Only change code above this line
};

const squaredIntegers = squareList([-3, 4.8, 5, 3, -3.2]);
console.log(squaredIntegers);
  **TypeError: Cannot read property 'concat' of undefined**

Challenge: Use Higher-Order Functions map, filter, or reduce to Solve a Complex Problem

Link to the challenge:

MDN: Array.prototype.reduce()

El valor devuelto de la función reductora se asigna al acumulador

The function that you pass to reduce doesn’t return anything, so the accumulator is undefined.

arr.reduce((sqrIntegers, num) => {
      if (Number.isInteger(num) && num > 0) {
        sqrIntegers.concat(Math.pow(num, 2))
      }
  }

Take a look at this example to see a difference:

let sum1 = (a, b) => a + b; // returns a + b

let sum2 = (a, b) => {
  return a + b; // returns a + b
}