JavaScript实现:通过用户输入匹配对象键并显示对应值
修复你的代码转换工具问题
嘿,我看到你的代码里有两个关键小问题导致它没法正常运行,咱们一步步来修复:
问题1:获取输入值的方式错误
你写的$("#userInput").val只是引用了jQuery的val方法本身,并没有调用它来获取输入框里的实际内容。必须加上括号()才能触发方法,拿到用户输入的文本。
问题2:未正确访问对象的对应值
在alert里,你需要通过键名来访问对象里的对应值,也就是用GardinerToUnicodeCodePoint[userInput]来获取匹配到的编码值,而不是保留注释内容。
修正后的完整代码:
$(document).ready(function() { // 把对象提到外面,避免每次点击都重新创建,提升一点性能 const GardinerToUnicodeCodePoint = { "A1" :"995328", "A1A" :"995329", "A1B" :"995330", "A1C" :"995331", "A2" :"995332", "A2A" :"995333", "A3" :"995334", "A3A" :"995335", "A3B" :"995336", "A4" :"995337", "A4A" :"995338", "A4B" :"995339", "A4C" :"995340", "A4D" :"995341", "A4E" :"995342", "A5" :"995343", "A5A" :"995344", "A5B" :"995345", "A5C" :"995346", "A6" :"995347", }; $("#convert").click(function(){ const userInput = $("#userInput").val().trim(); // 加上trim()可以去掉输入的前后空格,避免误判 if (userInput in GardinerToUnicodeCodePoint) { alert(GardinerToUnicodeCodePoint[userInput]); } else { alert("No code found!"); } }); });
我还额外加了个小优化:用trim()处理用户输入,这样可以忽略输入前后的空格,避免用户不小心输入空格导致匹配失败的情况。另外把对象移到了点击事件外面,不用每次点击按钮都重新创建这个大对象,稍微提升一点性能~
内容的提问来源于stack exchange,提问作者Boris J.
相关产品推荐
相关产品推荐

