Corríjame si me equivoco: ¿El principal beneficio de .map(), .filter(), además de la función que realizan, es el hecho de que proporcionan una capa de abstracción? Devolver nuevas matrices con bits de datos selectos sin mutar el original parece una abstracción en movimiento.
De hecho, la función de mapa toma prestados sus orígenes del principio del paradigma funcional ( https://en.wikipedia.org/wiki/Functional_programming ). En esa visión de la programación, solemos usar "funciones puras", que son funciones que no mutan ninguno de sus argumentos.
Entonces, no es realmente una abstracción sino una elección:
En algunos casos, no desea cambiar los datos originales, por lo que el mapa puede ajustarse de forma predeterminada.
En algunos otros casos, usted tiene la opción. El uso del mapa tiene la ventaja de reducir la posibilidad de efectos secundarios (por ejemplo, otras partes de la aplicación que comparten la misma matriz y no esperan cambios), a costa de duplicar datos.
Entonces, nadie es mejor que el otro, realmente depende de lo que quieras hacer.