JSFiddle - React, Tailwind, and code Playground

JavaScript

function filter(list, fn) {
  if (list.length === 0) {
    return []
  } else {
    if (fn(list[0])) {
      return [
        list[0],
        ...filter(list.slice(1), fn)
      ]
    } else {
      return filter(list.slice(1), fn)
    }
  }
}

console.log(filter([1, 2, 3, 4], x => x % 2 === 0))