Tengo algunos objetos de enumeración y quiero obtener su lebel por su valor.
Digamos que esta es mi lista de enumeración
const enumList = { businessType: [ { value: "b", label: "B2B" }, { value: "s", label: "SAAS" }, { value: "c", label: "C2C" }, ], userType: [ { value: "A", label: "Admin" }, { value: "s", label: "Super User" }, { value: "t", label: "trainer" }, ] } Entonces ahora quiero obtener una label de objeto en particular por su clave.
como esto,
enumList.userType.getLabel('s')' // super userQuiero decir, quiero que sea reutilizable, actualmente lo estoy haciendo así y no me gusta
index = enumList.userType.findIndex(x => x.value ==="s"); enumList.userType[index].label // super user ¿Alguien sabe cómo puedo hacer que sea reutilizable para acceder a él globalmente como este enumList.userType.getLabel('s) ?
Consulte ¿Por qué la extensión de objetos nativos es una mala práctica?
Parece que quieres una sola línea, así que solo usa find
const { label } = enumList.userType.find(userType => userType.value === 's');Este método de matriz personalizado le permitirá hacer esto enumList.userType.getLabel('s') y recibir 'Super User'
Array.prototype.getLabel = function(val) { return this.find(({value}) => value === val).label }