Maneira funcional de criar uma matriz de números

Como eu poderia escrever o código a seguir de forma mais funcional usando o ES6, sem nenhuma biblioteca de terceiros?

// sample pager array
// * output up to 11 pages
// * the current page in the middle, if page > 5
// * don't include pager < 1 or pager > lastPage
// * Expected output using example:
//     [9,10,11,12,13,14,15,16,17,18,19]

const page = 14 // by example
const lastPage = 40 // by example
const pagerPages = page => {
  let newArray = []
  for (let i = page - 5; i <= page + 5; i++) {
    i >= 1 && i <= lastPage ? newArray.push(i) : null
  }
  return newArray
}

Gostaria de evitar o Array.push e, possivelmente, o loop for, mas não tenho certeza de como o conseguiria nessa situação.

questionAnswers(3)

yourAnswerToTheQuestion