Javascript 检查数字是否为';s的倒数等于这个数字

Javascript 检查数字是否为';s的倒数等于这个数字,javascript,Javascript,我必须做一个函数,测试某个值在反转时是否等于它的原始形式。 我得到一个正整数a,这就是我得到的代码 var i = 0; var numlist1 = []; numlist1 = a.toString(10).replace(/\D/g, '0').split('').map(Number); var numlist2 = []; numlist2 = numlist1.reverse(); var final=1; while (i<numli

我必须做一个函数,测试某个值在反转时是否等于它的原始形式。 我得到一个正整数
a
,这就是我得到的代码

   var i = 0;
   var numlist1 = [];
   numlist1 = a.toString(10).replace(/\D/g, '0').split('').map(Number);
   var numlist2 = [];
   numlist2 = numlist1.reverse();
   var final=1;
   while (i<numlist1.length) {
      if (numlist1[i] != numlist2[i]) {
         final=0;
         break;
      }
      i=i+1;
   }
   var answer="yes";
   if (final == 0) {
      answer="no";
   }
var i=0;
var numlist1=[];
numlist1=a.toString(10)。替换(/\D/g,'0')。拆分(“”)。映射(编号);
var numlist2=[];
numlist2=numlist1.reverse();
var final=1;
而(i的问题是反转原始数组,因此当您运行
numlist2=numlist1.reverse();
时,您正在反转
numlist1
并将其引用分配给
numlist2
。相反,您希望创建一个新的相同数组并反转它:

函数checkNum(a){
var i=0;
var numlist1=[];
numlist1=a.toString(10)。替换(/\D/g,'0')。拆分(“”)。映射(编号);
var numlist2=[];
numlist2=numlist1.slice();
numlist2.reverse();
var final=1;

虽然(i解释与@Alexander Nied所说的相同,但实施方式不同:

只需更改这一行:

numlist2 = [...numlist1].reverse(); 
编辑:

您还可以简化整个代码,如:

  var numlist1 = a.toString(10).replace(/\D/g, '0').split('').map(Number);
  var numlist2 = [...numlist1].reverse(); 
  var answer = (numlist1.join() === numlist2.join()) ? 'yes' : 'no';

如果只是一个数字,则不需要将数字更改为字符串

有一个简单的逻辑来检查数字是否是回文的

功能检查反向(数字){
变量rem、温度、最终值=0;
温度=数量;
而(数量>0){
rem=数字%10;
number=parseInt(number/10);
最终=最终*10+rem;
}
返回最终===温度;
}
console.log(checkreverse(211));
console.log(checkreverse(212));
console.log(checkreverse(21134));

console.log(checkreverse(211343112));
您还可以使用查找字符串是否为回文的方法来解决此问题。在这里,您需要先将数字转换为字符串,然后检查字符串是否为回文(字符串的反向等于原始字符串)

请尝试以下解决方案

function isRevEqNum(num) {
   let str = String(num);
   const iter = [...str.toLowerCase()];
   for (let char of iter) {
      if (char !== iter.pop()) { return 'no' }
   }
   return 'yes'
}

您的代码从未初始化(甚至声明)
i
。很抱歉,我忘了包含它,我将
var i=0;
作为第一行