Estoy tratando de verificar si la cadena coincide con alguna de las cadenas guardadas en la base de datos, pero con el código que tengo ahora solo verifica la primera. Mi código:
for (const key in keys) { if (keys[key].key !== hashedQueryKey) { return "Invalid Key provided."; } else return true; }No debe return si la clave no coincide, ya que desea continuar comparando claves. Algo como:
function queryMatches(keys, hashedQueryKey) { for (const key in keys) { if (keys[key].key === hashedQueryKey) { return true; } } return false; }Puede usar Object.keys y Array.contains() para verificar si su clave está presente
if (Object.keys(keys).contains(hashedQueryKey)) { return true; } else { return "Invalid Key provided."; }aunque mirando su código y siendo paranoico ... en caso de que su propiedad 'clave' difiera de la clave de los objetos, usar Object.keys y anyMatch() es más seguro ...
if (Object.keys(keys).anyMatch(key => keys[key].key === hashedQueryKey)) { return true; } else { return "Invalid Key provided."; }si no necesita el mensaje, solo verdadero o falso, puede devolver el predicado.
es decir.
return Object.keys(keys).contains(hashedQueryKey);