O que o reduce() faz?

O array é percorrido da esquerda para direita invocando, a cada iteração, uma função de retorno.

O valor retornado é um valor acumulado que passa de callback para callback.

<aside> 💡 Usamos o reduce() quando queremos obter um valor cumulativo ou concatenado que se baseia nos elementos do array

</aside>

Parâmetros

array.reduce( function( prevVal, elem, index, array ) {
    ...
}, initialValue );

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/051bc571-73b6-4e29-abbb-a5362f04ef75/2.png

Exemplo

let list = ['u','m','a',' ','f', 'r', 'a', 's', 'e', ' ', 
'l', 'i', 'n', 'd', 'a', ' ', 'a', 'q', 'u', 'i']

list.reduce(
	function(string, char) {
	  return string += char
	}, 
'')

// resultado: "uma frase linda aqui"