Corrija o erro: Achatar um array

Estou tentando escrever uma função para achatar um array de subarrays em um único array. (Suponha que eu não saiba que existe um método .flat() no protótipo de Array). Em outras palavras, quero transformar isto: [[1, 2], [3, 4]] em [1, 2, 3, 4].

Aqui está o meu código:

function flatten(arr) {
  arr2 = [];
  for (let i = 0; i < arr.length; i++) {
    arr2.concat(arr[i]);
  }
  return arr2;
}

Mas... isso não parece funcionar! Corrija o meu código para que ele achate o array corretamente.

Exemplos

flatten([[1, 2], [3, 4]]) ➞ []
// Expected: [1, 2, 3, 4]

flatten([["a", "b"], ["c", "d"]]) ➞ []
// Expected: ["a", "b", "c", "d"]

flatten([[true, false], [false, false]]) ➞ []
// Expected: [true, false, false, false]

Observações

N/A