1
resposta

[Dúvida] Tratamento de listas

Referente a seguinte linha: livros.filter(livro => livro.id === id)[0]

Em outras linguagens precisamos fazer o tratamento da lista para saber se retornou resultados, e aí sim podemos usar o "[0]" para pegar o primeiro elemento, caso contrário daria erro caso a lista retornasse vazia.

Em Node, esse tratamento não é necessário?

1 resposta

Olá Lucas, tudo bem?

A função filter sempre retorna um array, seja com itens ou vazio. Se tentar pegar a posição [0] de uma lista vazia vai obter um undefined.

O recomendado é sim testar o resultado antes de retornar algum valor da lista pelo numero da posição;

Pode fazer:

const listaFiltrada = livros.filter(livro => livro.id === id)

if(listaFiltrada) {
    //tratar lista
}

Espero ter ajudado