第二个函数中有语法吗?

时间:2015-02-17 23:06:08

标签: javascript

以下代码都没有运行,除非我完全注释掉第二个函数(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>

1 个答案:

答案 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) ) {