1
resposta

Desafio

Qual seria a resposta para o desafio de usar map e filter com strings? Eu tentei fazer o seguinte, mas sem sucesso:

const nome = "Gustavo"

let nomeMaiusculo = nome.map(letra => letra.toUpperCase())
console.log(nomeMaiusculo)


function filtraVogais(letra) {
    if(letra === "a", "e", "i", "o", "u") {
        return letra
    }
}
console.log(nome.filter(filtraVogais))
1 resposta

Gustavo, o desafio é responder a pergunta!

Desafio: Seguindo a mesma lógica, é possível usar métodos modernos, como map() e filter() com strings?

A resposta é que o map e filter não fazer parte do prototípe da string e sim do array.

Aqui é a parte da documentação falando sobre Strings https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String#methods

Aqui é a parte da documentação falando sobre Arrays https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

Pode ver que na documentação de strings que filter e map nem são mencionados.

Eu vejo uma possibilidade de fazer com map, split e reduce, pq o split iria dividir todas as palavras como um array de letras, depois faria o map para fazer o upperCase em todas as letras e depois concatenar com o reduce.