Acabo de codificar dos funciones simples para validar un campo si tiene un valor específico, pero en algunos casos las respuestas podrían ser una matriz. ¿Puedo simplificar estas funciones en una sola función? Traté de usar la misma función "isOrderInLastMile" cuando la respuesta es solo un objeto, pero recuperé el error "object.map is not a function".
función 1: uso esta función cuando la respuesta es una matriz de objetos.
export function isOrderInLastMile(pieces: any): boolean { const totalPieces: number = pieces.length; let momentFound: number = 0; pieces.map((element) => { if ( element.stagesHistory && getCurrentMoment(element.stagesHistory) === MomentsLabel.En_última_milla_id ) { momentFound = momentFound + 1; } return momentFound; }); return totalPieces === momentFound; }Función 2: uso esta función cuando esta respuesta es solo un objeto
export function isPieceInLastMile(piece: any): boolean { return ( piece.stagesHistory && getCurrentMoment(piece.stagesHistory) === MomentsLabel.En_última_milla_id ); }¿Cómo puedo unificar ambas funciones? ¡¡¡Gracias!!! :)
Envuelva su elemento único en una matriz, como esta:
export function isPieceInLastMile(piece: any): boolean { return isOrderInLastMile([piece]); }o use la función única en una devolución de llamada
return pieces.every(isPieceInLastMile);(La última opción se puede usar en lugar de contar todos los elementos coincidentes)