我试图重复获取2个输入并将它们存储到数组中,直到键入单词“ end”。但是,我在console.log(studentList [i]);中变得不确定。

编辑:在你们的帮助下,我能够将值存储到数组中。现在,我要做的是为输入的每个标记赋予一个“等级”。但是,无论我输入什么数字,所有年级的学生都获得“ HD”。

const readline = require('readline-sync');

var name, marks;
var studentList = [];

Input();

function printList(list) {
  for (let i = 0; i < studentList.length; i += 1) {
    var grade;
      if ((marks <= 100) && (marks => 80)){
          grade = 'HD'
          studentList[i][2] = grade;

        }
        else if ((marks <= 79) && (marks => 70))
        {
            grade = 'D'
            studentList[i][2] = grade;

        }
        else if ((marks <= 69) && (marks =>60))
        {
            grade = 'C'
            studentList[i][2] = grade;

        }
        else if ((marks <= 59) && (marks =>51))
        {
            grade = 'P'
            studentList[i][2] = grade;

        }
        else if ((marks < 50) && (marks =>0))
        {
            grade = 'N'
            studentList[i][2] = grade;

        }
        console.log(studentList[i]);
    }

}

function Input()
{
  while(true) {
    console.log("Please enter the student name (or \"end\" to end): ");
    name = readline.question("Student Name: ");
    if (name === 'end') {
      printList(studentList)
      break
    }
    console.log("Student Name is" , name);
    marks = readline.question("Enter marks for " + name + ": ");
    if (marks === 'end') {
      printList(studentList)
      break
    }
    console.log("Marks for " + name + " is " + marks );
    studentList.push([name, marks]);
  }
}


任何建议将不胜感激!谢谢!

最佳答案

您主要需要将.Length更改为.length,并且必须将while循环与while循环中出现的中断(键入“ end”)结合使用,以提供要打印的列表。通过更改if语句的位置,您可以调整何时发生中断以及何时从用户输入中读取中断。

const readline = require('readline-sync');

var name, marks;
var studentList = [];

Input();

function printList(list) {
  for (let i = 0; i < list.length; i += 1) {
    console.log('list[i]', list[i]);
  }
}

function Input()
{
  while(true) {
    console.log("Please enter the student name (or \"end\" to end): ");
    name = readline.question("Student Name: ");
    if (name === 'end') {
      printList(studentList)
      break
    }
    console.log("Student Name is" , name);
    marks = readline.question("Enter marks for " + name + ": ");
    if (marks === 'end') {
      printList(studentList)
      break
    }
    console.log("Marks for " + name + " is " + marks );
    studentList.push([name, marks]);
  }
}

07-27 13:48