Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图在JavaScript中查找闰年和非闰年_Javascript_Arrays_Loops_Leap Year - Fatal编程技术网

试图在JavaScript中查找闰年和非闰年

试图在JavaScript中查找闰年和非闰年,javascript,arrays,loops,leap-year,Javascript,Arrays,Loops,Leap Year,我试图找到一个数字范围内的闰年和非闰年。闰年和非闰年需要放在不同的数组中,稍后我将把它们输出到一个表中。我对JavaScript非常陌生,我怀疑我的循环可能是错误的,我不确定 我的问题是,非闰年数组没有得到它需要的所有数字。我进入1900-2000年,闰年似乎没问题,但非闰年数组只上升到1930年。我试着修了一段时间,但运气不好 编辑:的循环仅用于我测试阵列 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

我试图找到一个数字范围内的闰年和非闰年。闰年和非闰年需要放在不同的数组中,稍后我将把它们输出到一个表中。我对JavaScript非常陌生,我怀疑我的循环可能是错误的,我不确定

我的问题是,非闰年数组没有得到它需要的所有数字。我进入1900-2000年,闰年似乎没问题,但非闰年数组只上升到1930年。我试着修了一段时间,但运气不好

编辑:的
循环仅用于我测试阵列

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">

<html>

    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />

        <title>LeapYears</title>

        <script type="text/javascript">
        /* <![CDATA[ */


            function calcLeapYear() {

                var beginYear = document.leapYears.firstYear.value;
                var endYear = document.leapYears.secondYear.value;
                var leapYrs = new Array();
                var nonLeapYrs = new Array();

                var ctr = 0
                var ctr2 = 0
                while (beginYear < endYear){

                    if (((beginYear % 4 == 0) && (beginYear % 100 != 0)) || (beginYear % 400 == 0)) { /* Determines if year is a leap year or not */
                        leapYrs[ctr] = beginYear;
                        ++ctr;
                    }
                    else {
                        nonLeapYrs[ctr2] = beginYear;
                        ++ctr2;
                    }

                    ++beginYear;
                }

                if (leapYrs == 0){
                        window.alert("There were no leap years within the range.");
                    }

                for (i=0;i<leapYrs.length;i++){    //Testing Calculation
                    document.write(leapYrs[i] + "<br/>");
                }

                document.write("<br/>")

                for (i=0;i<leapYrs.length;i++){
                    document.write(nonLeapYrs[i] + "<br/>");
                }

            }

        /* ]]> */
        </script>


    </head>


    <body>
        <form name="leapYears">

            Beginning Year: <input type="text" name="firstYear" /> End Year: <input type="text" name="secondYear" /> 
            <input type="button" value="Find Leap Years" onclick="calcLeapYear()" />

        </form>

    </body>


</html>

跳跃年
/*  */
开始年份:结束年份:

当你
文档时,你的循环。写
非leapYrs
的内容只在
leapYrs
的长度上循环,因此它只会打印数组的一部分。

你的
var
ctr
ctr2
缺少分号。因此,你甚至不需要计数器,你可以使用
leapYrs.push(beginYear)
和类似的方法向数组中添加元素。我必须研究这个push()方法,它最近才开始覆盖数组。我讨厌错过这样的小事。非常感谢!如果这解决了它,请点击按钮接受它作为答案:)