带 while 循环的 JavaScript 数组

标签 javascript arrays

在此代码中,应该找到“var dob”的年龄,然后循环遍历数组以找到学生的年级。

我被告知我有正确的代码来查找此人的年龄。 我也有正确的数组。我的问题似乎出在我的 while 循环中。

我的 while 循环中的语法有错误。

    <script language="javascript" type="text/javascript">

        var dob = '20120810';
        var year = Number(dob.substr(0, 4));
        var month = Number(dob.substr(4, 2)) - 1;
        var day = Number(dob.substr(6, 2));
        var today = new Date();
        var age = today.getFullYear() - year;
        if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) {
      age--;
    }
    //document.write("You are " + (age + 1) + " Years old"+"<br>");

    var grade = [
        [6,'Grade 1'],
        [7,'Grade 2'],
        [8,'Grade 3'],
        [9,'Grade 4'],
        [10,'Grade 5'],
        [11,'Grade 6'],
        ];

    while (var age = 0; age < grade; age++){
          document.write(grade[age]);
    }


    </script>

最佳答案

您的一些错误是
1. 您正在将 (int)age 与 (array)grade 进行比较 最好的方法是 age < grade.length
2、grade的索引数组从0到5,即grade[0] == [6, 'Grade 1'] ,这意味着如果年龄大于 5,则不会有结果。

另一种方法,如果您确实想打印出与年龄相对应的成绩,

    // age = 7;
    let yourGrade = grade.find(e => {
        return e[0] == age;
    });
    // console.log(yourGrade); // [7, 'Grade 2']
    // console.log(yourGrade ? yourGrade[1] : "You’re either too young or too old");
    // Grade 2

上面的代码尝试查看您的(数组)成绩并返回第一个项目等于计算出的年龄的值的第一次出现。

有很多方法可以实现这一目标。
编辑
或者,如果您特别关注 while循环,您可以执行以下操作:

    //age = 7;
    let yourGrade;
    let i = grade.length;
    while(i––) {
        if (grade[i][0] == age) {
            yourGrade = grade[i];
            break;
        }
    }
    console.log(yourGrade);
    //[7,'Grade 2']
    //try with age = 5 //undefined

关于带 while 循环的 JavaScript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60894080/

相关文章:

javascript - 如何检测 JavaScript 中的链式函数调用?

javascript - 在 puppeteer/JavaScript 中重试 page.goto、page.waitForNavigation 等的最佳实践

java - 如何处理: java. lang.ArrayIndexOutOfBoundsException:1

javascript - Javascript 中的 Array() 和 [] 有什么区别,为什么我要使用一个而不是另一个?

arrays - 基于 array.count 生成 imageView - Swift

javascript - 如何在 script.aculo.us 中禁用 Draggables

javascript - 在月份/日期选择器上限制年份

arrays - 将 Variant 数组传递给 Application.Index 方法时,Excel VBA 运行时错误 '13' : Type mismatch,

javascript - 在 JavaScript 中分配字符串

java - 返回数组中最大数字的索引