这里,当点击按钮时,检查输入中写入的内容是否存在于对象中,如果存在,则控制台为真,否则为假。问题是,为什么它只检查最后一个密钥进行验证?
let a4 = {
3 : 'hello',
'one' : 'hi',
'testt' : 'vodoley',
'ivan' : 'ivanov'
};
let x = document.querySelector(".keys")
let y = document.querySelector(".btn")
for(key in a4){
y.onclick = ()=>{
if(x.value == key){
console.log(true)
}
else{
console.log(false)
}
console.log(key,x.value)
}
}
<input type = "text" class="keys"></input>
<button class = "btn">Check!</button>
错误在于循环的放置,循环必须放在点击处理程序中,而不是处理程序应该挂在循环中,所以只有后者起作用。此外,要检查对象中的键,不必循环运行它,有一个更简单的选项: