¿Cuál es la ventaja de usar una función sobre los bucles?

Parece que los iteradores funcionales están reemplazando el uso de bucles for en JS.

¿Cuál es la ventaja de pasar una función como map o reduce en comparación con un ciclo for / while?

var numbers = [1, 4, 9];
var doubles = numbers.map(function(num) {
  return num * 2;
});

var doubles = [];
for (i = 0; i < numbers.length; i++) { 
    doubles[i] = numbers[i] * 2;
}