Recursión: ¿Aislados o agrupados?

Escribe una función que extraiga el valor máximo de un array de números. Si hay dos o más valores máximos, devuélvelos como un array; de lo contrario, devuelve el número. Este proceso podría ser relativamente fácil con algunas de las funciones integradas de Array, pero el enfoque requerido es recursivo.

Ejemplos

isoGroup([31, 7, 2, 13, 7, 9, 10, 13]) ➞ 31

isoGroup([1, 3, 9, 5, 1, 7, 9, -9]) ➞ [9, 9]

isoGroup([97, 19, -18, 97, 36, 23, -97]) ➞ [97, 97]

isoGroup([-31, -7, -13, -7, -9, -13]) ➞ [-7, -7]

isoGroup([-1, -3, -9, -5, -1, -7, -9, -9]) ➞ [-1, -1]

isoGroup([107, 19, -18, 79, 36, 23, 97]) ➞ 107

Notas

  • Puedes leer más sobre recursión (consulta la pestaña Resources) si todavía no estás familiarizado con ella o no has comprendido completamente el concepto antes de realizar este desafío.
  • Si te parece divertida la recursión, puedes encontrar una colección de esos desafíos aquí.