Oi pessoal, tudo bem? Pedindo mais uma ajuda no fórum, porfas!
Estou tentando resolver o exercício 2 utilizando a callback filter, mas colocando uma condicional dentro da função callback que irá fazer a verificação do ano de lançamento do filme. No entanto, quando a condição não é satisfeita (o "if" não é atendido) estou com dificuldades de fazer com que o programa retorne os dados consolidados após todas as iterações sobre os objetos forem feita. Eu não quero que seja apresentado o valor do "else" para toas as iterações. Veja que criei uma variável de mensagem ('msgNotFound') para caso o ano de lançamento não seja encontrado.
Entendo que para cada iteração, o código vai passar pela possibilidade de o ano não é encontrado, já que nem todos os filmes da lista foram lançados no mesmo ano. Entretanto, como eu posso fazer para que o código exiba essa mensagem somente quando NENHUM filme possuir o ano que está sendo usado na comparação?
Meu código:
const listaFilmes = require("./estanteFilmes.json")
const msgNotFound = console.log("Filme não encontrado")
function filtrarfilmesPorAno(anoFilmeUser){
const filmesAnoUser = listaFilmes.filter(filmes => {
if(filmes.anoLancamento === anoFilmeUser){
return filmes
}
else{
return msgNotFound;
}
})
console.log(filmesAnoUser)
}
filtrarfilmesPorAno(1994)
Aqui minha base de dados que salvei como estanteLivros.json
[{
"id": 1,
"titulo": "ET o Extraterrestre",
"diretor": "Steven Spilberg" ,
"anoLancamento": 1982
},
{
"id": 2,
"titulo": "O protetor",
"diretor": "Antoine Fuqua" ,
"anoLancamento": 2014
},
{
"id": 3,
"titulo": "Assassinos por Natureza",
"diretor": "Oliver Stone" ,
"anoLancamento": 1994
},
{
"id": 5,
"titulo": "O Máskara",
"diretor": "Chuck Russell" ,
"anoLancamento": 1994
},
{
"id": 6,
"titulo": "Rambo",
"diretor": "Ted Kotcheff" ,
"anoLancamento": 1985
},
{
"id": 7,
"titulo": "Blade Runner, o Caçador de Andróides",
"diretor": "Ridley Scott" ,
"anoLancamento": 1985
}
]
'''