javascript - 为什么我在尝试创建一个系统来生成带有用户首字母缩写的随机代码时提示输入用户名失败?

标签 javascript

我正在尝试创建一个可由我们学区秘书在浏览器中运行的脚本。基本上,他们会输入新学生或新员工的姓名,并获得 8 位数的输出、六位数的随机数以及最后添加的用户姓名缩写。他们会将其复制到我们的系统之一中,并且唯一的代码将启动自动帐户创建。我们已经设置了帐户创建并正在运行,但很难获得唯一的代码。我没有包含脚本的随机数部分,因为我唯一的问题在于提示输入用户名并提取缩写。

function ID() {
    var userName = prompt("Please enter your name", "<User Name>");
}

function getInitials(name) {
  let initials = "";
  let waitingForSpace = false;

  for (var i = 0; i < name.length; i++) {
    if (!waitingForSpace) {
      initials += name[i];
      waitingForSpace = true;
    }

    if (name[i] === " ") {
      waitingForSpace = false;
    }
  }

  return initials;
}
console.log(getInitials(userName));


我想我应该收到输入用户名的提示,该用户名存储为 userName。然后用于 getInitials。然而,当我尝试运行 Node Initials.js 时,我得到...

ReferenceError: userName is not defined
at Object. (/Users/dross/Documents/UserID/Initials.js:22:25)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

最佳答案

您的代码中缺少 }。您可以将代码更改为如下所示:

function getUserName() {
  var userName = prompt("Please enter your name", "<User Name>");
  return userName; // return the entered name
}

function getInitials(name) {
  let initials = "";
  let waitingForSpace = false;

  for (var i = 0; i < name.length; i++) {
    if (!waitingForSpace) {
      initials += name[i];
      waitingForSpace = true;
    }

    if (name[i] === " ") {
      waitingForSpace = false;
    }
  }

  return initials;
}

var name = getUserName(); // returns the name entered
console.log(getInitials(name));

关于javascript - 为什么我在尝试创建一个系统来生成带有用户首字母缩写的随机代码时提示输入用户名失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54654564/

相关文章:

javascript - 如何在网页上嵌入 3D 对象?

javascript - Promise 始终处于待处理状态(语法错误?)

javascript - 构建脚本编译了一些 CoffeeScript 文件并跳过了一些

javascript - 动画后可访问地隐藏和显示内容

javascript - 单击 "Submit"或 "Close"后如何关闭 JIRA 问题收集器窗口

javascript - 保存为字符串的环回日期值

javascript - 谷歌地图固定位置覆盖

javascript - 为什么我总是无法通过 javascript 对复选框进行复选标记?

javascript - 当移动的 div 到达特定区域时将 CSS 应用到它。用于移动元件的静态放大镜

javascript - 移动 'toggle size' 按钮 fancybox