Tengo datos que regresando de SER
Aquí está el código donde lo muestro
<div className="pr-0 mt-20" style={{ display: 'flex', justifyContent: 'center' }}> <MuiCardWithAnimation component={AnimateSimple} recipe="slideRightInLarge" className="w-6/12 mx-auto m-16 md:m-0" square> <CardContent className="flex flex-col items-center justify-center p-32 md:p-48 md:pt-128 "> <Typography variant="h6" className="md:w-full mb-32"> Result </Typography> {companiesHouseResults?.filter(r => Math.max(r.matchConfidenceScore)).map((r) => ( <div className="col col-lg-4 grid-wrapper"> <Card sx={{ minWidth: 275 }}> <CardContent> <Typography variant="h5" component="div"> Company Name: {r.companyName} </Typography> <Typography sx={{ mb: 1.5 }}>Confidence Band: {r.matchConfidenceBand}</Typography> <Typography variant="body2">Confidence Score: {r.matchConfidenceScore}</Typography> </CardContent> </Card> </div> ))} </CardContent> </MuiCardWithAnimation> </div> Aquí {companiesHouseResults?.filter(r => Math.max(r.matchConfidenceScore)).map((r) Necesito filtrarlo para obtener el elemento con la puntuación más alta
Pero en Math.max tengo este error
Argumento de tipo 'número | undefined' no se puede asignar a un parámetro de tipo 'number'. El tipo 'indefinido' no se puede asignar al tipo 'número'.
¿Cómo puedo solucionar esto?
Debe verificar si no está definido antes de pasarlo a la función Math.max, puede hacerlo, por ejemplo, así
r.matchConfidenceScore && Math.max(r.matchConfidenceScore)El valor de r.matchConfidenceScore se convertirá en booleano y, si es falso, no ejecutará la siguiente declaración debido al AND lógico (&&)