以下代码都没有运行,除非我完全注释掉第二个函数(findPalindromes())并且我不能为我的生活找到原因。有人可以帮我找错吗?
这段代码应该找到一堆素数,然后列出也是回文的素数
<html>
<head>
<script>
var low;
var high;
var primes=[];
var pprimes=[];
var div1;
var div2;
function findPrimes(){
low=0;
high=999;
div1=document.getElementById("primes");
if(low<0||high<=0||high<=low){
return;
}
for(var i=low; i<high; i++){
if(i<=2&&i!=0){
primes[primes.length]=i;
continue;
}
var isPrime;
for(var j=2; j<i;j+=2){
isPrime=true;
if((i%j)==0){
isPrime=false;
break;
}
if(j==2)
j++;
}
if(isPrime==true)
primes[primes.length]=i;
}
for(var i=0; i<primes.length; i++)
div1.innerHTML+=(primes[i]+" ");
findPalindromes();
}
function findPalindromes(){
for(var i=0; i<primes.length; i++){
if(primes[i]<10)
continue;
str=primes[i].toString();
isPal=true;
for(int j=0;j<str.length;j++){
if(str.charAt(j)!=str.charAt(str.length-j){
isPal=false;
break;
}
if((str.length-j)<=1)
break;
}
if(isPal==true)
pprimes[pprimes.length]=primes[i];
}
div2=document.getElementById("pprimes");
for(var i=0; i<pprimes.length;i++){
div2.innerHTML+=(pprimes[i]+" ");
}
}
</script>
</head>
<body onload="findPrimes()">
<div id="primes"></div>
<div id="pprimes"></div>
</body>
答案 0 :(得分:6)
Javascript没有使用强类型变量,它是弱类型的,没有int
,你可以通过打开控制台发现它
for(int j=0;j<str.length;j++){
应该是
for(var j=0;j<str.length;j++){
相同的for循环缺少charAt
if (str.charAt(j) != str.charAt(str.length - j ) {
应该是
if (str.charAt(j) != str.charAt(str.length - j) ) {