我正在尝试创建一个可由我们学区秘书在浏览器中运行的脚本。基本上,他们会输入新学生或新员工的姓名,并获得 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/