Esto es lo que me piden:
Vamos a depurar una función que toma un objeto y un valor objetivo. Esta función iterará sobre los valores del objeto e intentará localizar el valor de destino. Si se encuentra el valor, la función debe devolver el nombre de la clave donde se encuentra el valor en cuestión, y si no, la función debe devolver -1. A continuación se muestra un ejemplo del código en ejecución, asumiendo que habrá depurado la función descrita: keyOfObjectValue:
function keyOfObjectValue(object, target) { for (var key in object) { if (object[key] === target) { return key; } else { return -1; } } } var result1 = keyOfObjectValue({cucumbers: 14, carrots: 20, peas: 400}, 20); console.log('should log "carrots":', result1);Esto es lo que hice (que no es depurar sino cambiar todo el código en su lugar: debe haber una manera más fácil pero no pude encontrarla...
function keyOfObjectValue(object, target){ let allKeys=Object.values(object); console.log(allKeys) let result= allKeys.find(element=>element==target) let result2=Object.keys(object).find(key => object[key] === result) console.log(result); console.log(result2); if (result !==undefined){ return result2; }else return -1 } var result1 = keyOfObjectValue({cucumbers: 14, carrots: 20, peas: 400}, 20); console.log('should log "carrots":', result1); function keyOfObjectValue(object, target) { let passedKey = "" for (var key in object) { if (object[key] === target) { passedKey = key } } if(passedKey === ""){return -1}else{return passedKey} } var result1 = keyOfObjectValue({cucumbers: 14, carrots: 20, peas: 400}, 20); console.log('should log "carrots":', result1);