试图找到如果一个数字是一个回文在JS

Trying to find if a number is a palindrome in JS

本文关键字:一个 回文 JS 数字 如果      更新时间:2023-09-26

我正在努力学习JS,我有一些练习,我试图解决,以提高。目前,我试图找出一个数字是否是回文,我有这个代码,但它似乎不起作用,因为我得到我在输入中插入的所有数字都是回文。

<input type="text" class="screen">
<button type="button" class="btn">Check</button>

 var strg = document.querySelector(".screen").value;
 var pal = strg.split("").reverse("").join("");
document.querySelector(".btn").addEventListener("click", function(){
    if (strg == pal) {
    console.log(strg+" is a palindrome");
  }
  else {
    console.log(strg+" is not a palindrome");
  }
})
https://jsfiddle.net/Lw6uk8kb/

感谢您的帮助

您还必须移动处理程序中的前两行:

document.querySelector(".btn").addEventListener("click", function(){
    var strg = document.querySelector(".screen").value;
    var pal = strg.split("").reverse("").join("");
    if (strg == pal) {
        console.log(strg+" is a palindrome");
    }
    else {
        console.log(strg+" is not a palindrome");
    }
});

否则您将始终查询相同(空?)的.screen值。

使用如下代码:

document.querySelector(".btn").addEventListener("click", function(){
    var strg = document.querySelector(".screen").value;
    var pal = strg.split("").reverse("").join("");
    if (strg == pal) {
    console.log(strg+" is a palindrome");
  }
  else {
    console.log(strg+" is not a palindrome");
  }
})

这将工作,因为你会计算回文在时刻(之后)你点击按钮。在你的代码中,当所有的脚本都被加载后,所有的计算都会立即工作。

您没有使用实际值更新变量。
只需将它们移动到事件处理程序中:

document.querySelector(".btn").addEventListener("click", function(){
 var strg = document.querySelector(".screen").value;
 var pal = strg.split("").reverse().join("");
 if (strg == pal) {
   console.log(strg+" is a palindrome");
 } else {
   console.log(strg+" is not a palindrome");
 }
})