O mural do PaceUp apresenta uma lista de check-ins. Antes de favoritar ou excluir um deles, a aplicação precisa localizar o item escolhido pelo seu identificador.
A mensagem de um check-in pode se repetir, e sua posição na lista pode mudar.
Por isso, a busca deve usar o campo id.
Complete a função encontrarCheckin, que recebe:
checkins: um array de objetos do tipo Checkin;id: o identificador do check-in procurado, em texto.O tipo e a assinatura da função já estão no código inicial:
type Checkin = {
id: string;
message: string;
ownerId: string;
favorite: boolean;
};
function encontrarCheckin(
checkins: Checkin[],
id: string,
): Checkin | null
A função deve:
id seja exatamente igual ao informado;null quando o ID não existir, inclusive se o array estiver vazio;Considere que os IDs são únicos dentro da lista. A comparação diferencia letras
maiúsculas e minúsculas: "ci-A" e "ci-a" são identificadores diferentes.
Considere esta lista:
const checkins: Checkin[] = [
{
id: "ci-10",
message: "Treino concluído!",
ownerId: "user-1",
favorite: false,
},
{
id: "ci-20",
message: "Treino concluído!",
ownerId: "user-2",
favorite: true,
},
];
Os dois check-ins têm a mesma mensagem, mas são itens diferentes.
encontrarCheckin(checkins, "ci-20")
// Retorno esperado:
// {
// id: "ci-20",
// message: "Treino concluído!",
// ownerId: "user-2",
// favorite: true,
// }
encontrarCheckin(checkins, "ci-99")
// Retorno esperado: null
encontrarCheckin([], "ci-10")
// Retorno esperado: null
Pratique a busca em um array de objetos, a comparação com === e o retorno
Checkin | null. Você pode usar um laço ou o método find do array.
Se usar find, lembre-se de que ele retorna undefined quando não encontra um
item. O contrato desta função exige null nesse caso.
Mantenha o tipo Checkin, o nome da função e seus parâmetros. Não utilize any
ou console.log: o resultado deve ser devolvido com return.