Javascript 使用 readline 添加到数组

标签 javascript arrays node.js

我试图重复获取 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]);
  }
}

关于Javascript 使用 readline 添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60177246/

相关文章:

node.js - 如何让 node-inspector 与 foreman 和 nodemon 一起运行?

javascript - Request js 中的回调问题

javascript - AJAX 调用后无法禁用 javascript 中的按钮

javascript - node.js - XMLHttpRequest,获取header信息

javascript - AngularJS 设置 html 属性

Python 切片显示相同的 id 位置

javascript - 使用 Javascript 或 C# 从 Office 365 Outlook 加载项创建 .msg 文件

c++ - 是return *array;有效的?

c++ - signed int 数组的高性能比较(使用英特尔 IPP 库)

javascript - 如何从 Node.js 主模块访问全局变量?