列出从现在到用户输入的特定数字的所有闰年

时间:2016-10-29 23:26:08

标签: javascript arrays

编写一个函数,确定接下来的n年中哪一年是闰年。如果呼叫者通过300,则该程序应返回2016年至2316年之间的闰年。

闰年是任何一年都可以平均除以4(例如2012年,2016年等),除非它可以均匀地除以100,那么它不是(例如2100,2200等)除非它可以被均匀地除以400,否则就是(例如2000,2400)。

我的第一次尝试是:

 function leapYear(number) {
     var year = 2016 + number;
     var tracker = [];
     for(i = 2016; i <= year; i++) {
         if(i % 100 !== 0) {
             tracker.push(i);
         } else if(i % 400 === 0) {
             tracker.push(i);
         } else if(i % 4 === 0) {
             tracker.push(i);
         } else {
             return tracker;
         }
     }
     return tracker;

 }
 console.log(leapYear(300));

我意识到这是错误的,因为我没有正确地使用if else语句,当你在else上设置条件时,如果它意味着if语句条件不满足。这是我的第二次尝试。

function leapYear(number) {
    var year = 2016 + number;
    var tracker = [];
    for(i = 2016; i <= year; i++) {
        if(i % 4 === 0 || i % 400 === 0 && i % 100 !== 0) {
            tracker.push(i);
        } else {
            return tracker;
        }
    }
}
console.log(leapYear(300));

我尝试了几种这样的组合,但没有任何效果。并且有人可以告诉我为什么这只打印出[2016]?

1 个答案:

答案 0 :(得分:1)

尝试使用return代替function leapYear(number){ var year = 2016 + number; var tracker = []; for(i=2016 ; i <= year ; i++ ){ if(i % 4 ===0 || i % 400 ===0 && i % 100 !== 0){ tracker.push(i); } else{ continue; } } return tracker; } console.log(leapYear(300)); ,更新后的代码如下:

gtk_css_provider_load_from_data()