Tengo un JS Object Literal (logGroupMap) que contiene nombres de alarma como claves y sus grupos de registro como valores. Los nombres de las alarmas se pasan con nombres consistentes de longitud variable pero con caracteres generados al final cada vez, por lo que estoy tratando de ver si la cadena incluye una clave del literal del objeto logGroupMap, y si es así, quiero obtener el valor asociado con esa llave
let logGroup = (alarmName) => { Object.keys(logGroupMap).forEach((key) => { if (alarmName.includes(key)) { logGroup = logGroupMap.key; } }); }; console.log(logGroup(messageDetails.AlarmName));
Actualmente esto está volviendo indefinido en todos los casos.
Utilice el método Array.find()
para buscar una clave coincidente.
Para acceder a una propiedad dinámicamente, use logGroupMap[key]
. logGroupMap.key
devuelve el valor de la propiedad llamada key
, no usa key
como variable.
function logGroup(alarmName) { let found = Object.keys(logGroupMap).find((key, value) => alarmName.includes(key)); if (found) { return logGroupMap[key]; } }