如何无需逐个指定索引获取数组全部元素并校验用户输入是否匹配
解决方法
你当前代码的问题在于直接将字符串类型的用户输入和数组做相等判断,运行时会默认把数组转为逗号拼接的字符串后再比较,完全不符合预期。
如果你需要判断用户输入的密码是否存在于已有密码数组中,使用数组内置的includes()方法一行代码就能实现,修改后的JS代码如下:
let pass = [ "example", "wow" ]; const message3 = document.getElementById("signup"); document.getElementById("myButton3").addEventListener("click", function() { pass.push(message3.value); alert(pass) }); const message4 = document.getElementById('password'); document.getElementById("myButton4").addEventListener("click", function() { // 一行代码判断输入值是否在密码数组中 if (pass.includes(message4.value)) { alert('验证通过!') } else { alert('密码错误') } });
如果你确实需要一次性获取数组所有元素拼接成完整字符串,可以用join()方法,比如拼接为无分隔符的字符串写法为pass.join(''),指定逗号分隔写法为pass.join(','),同样是一行代码就能实现。
配套的HTML代码无需修改:
<input type="text" id="signup" value=""> <br> <button id="myButton3" type="button">设置密码</button> <br> <input type="text" id="password" value=""> <br> <button id="myButton4" type="button">输入密码</button>
内容的提问来源于stack exchange,提问作者MusaYasin
相关产品推荐
相关产品推荐

