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;
作为第一行