Quantidade variável de aninhados para loops

Edit: Desculpe, mas esqueci de mencionar que vou precisar dos valores das variáveis do contador. Receio que fazer um loop não seja uma solução.

Não tenho certeza se isso é possível, mas gostaria de fazer o seguinte. Para uma função, uma matriz de números é passada. Cada número é o limite superior de um loop for, por exemplo, se a matriz for[2, 3, 5], o seguinte código deve ser executado:

for(var a = 0; a < 2; a++) {
     for(var b = 0; b < 3; b++) {
          for(var c = 0; c < 5; c++) {
                doSomething([a, b, c]);
          }
     }
}

Portanto, a quantidade de aninhados para loops é igual ao comprimento da matriz. Haveria alguma maneira de fazer isso funcionar? Eu estava pensando em criar um pedaço de código que adiciona cada loop for a uma string e depois o avalia atravéseval. Eu li no entanto queeval não deve ser a primeira escolha, pois também pode ter resultados perigosos.

Que técnica pode ser apropriada aqui?

questionAnswers(8)

yourAnswerToTheQuestion