Map ou forEach não fazem o trabalho melhor?
Cada função ou estrutura tem sua utilidade. Muitas vezes confundimos e acabamos por mal utiliza-las. Map e forEach tem sua utilidade: percorrer listas (arrays).
O loop while serve para que enquanto uma condição for satisfeita o bloco de código seja executado. Observe que não necessariamente está associado a iteração de listas.
Quando tratamos de listas, então map ou forEach podem ser uma boa opção. Para entender isso é preciso se perguntar em relação ao custo de cada um.
O loop for por exemplo inicializa uma variavel, depois testa seu valor e posteriormente incrementa. No segundo loop do for ele apenas testa e incrementa. Se assumirmos que o custo de cada uma das operações é 1, então o custo de um loop for é de 2n + 1, sendo n o número que representa o número de loops.
Complexidade: O(2n + 1)
O forEach e o map apenas apontam para o primeiro elemento da lista, se houver, e depois verifica se existe um próximo elemento. Sendo assim a complexidade é de apenas n.
Complexidade: O(n)
O moreirahelder deu um exemplo massa: ler o conteudo de um arquivo. Como você sujere fazer o mesmo usando map ou foreach?