¿Cómo encontrar todos los subconjuntos de un conjunto en JavaScript?

Necesito obtener todos los subconjuntos posibles de una matriz.

Digamos que tengo esto:

[1, 2, 3]

¿Cómo consigo esto?

[], [1], [2], [1, 2], [2, 3], [1, 3], [1, 2, 3]

Estoy interesado en todos los subconjuntos. Para subconjuntos de longitud específica, consulte las siguientes preguntas:

Encontrar subconjuntos de tamaño n:1, 2Encontrar subconjuntos de tamaño> 1:1

Respuestas a la pregunta(5)

Su respuesta a la pregunta