这是练习:
创建一个包含员工列表的小程序 名称。程序运行时打印出姓名列表 第一次。提示输入员工姓名并删除 姓名列表中的特定姓名。显示 剩下的员工,每个人都有自己的生产线。
示例输出
<小时/>共有 5 名员工:
约翰·史密斯
杰基· jackson
克里斯·琼斯
阿曼达·卡伦
杰里米·古德温
输入要删除的员工姓名:Chris Jones
共有 4 名员工:
约翰·史密斯
杰基· jackson
阿曼达·卡伦
杰里米·古德温
约束
• 使用数组或列表来存储名称。
这是我到目前为止所尝试过的(尽管它会在脚本加载后提示删除该名称,而不是在打印前 5 个名称之后)。
var nameToRemove;
var employee = ["John Smith", "Jackie Jackson", "Chris Jones", "Amanda Cullen", "Jeremy Goodwin"];
var i;
document.write("There are " + employee.length + " employees: <br><br>");
for (i = 0; i < employee.length; i++) {
document.write(employee[i] + "<br>");
}
nameToRemove = employee.indexOf(prompt("Enter an employee name to remove:"));
if (nameToRemove > -1) {
employee.splice(nameToRemove, 1);
}
document.write("<br>There are " + employee.length + " employees: <br><br>");
for (i = 0; i < employee.length; i++) {
document.write(employee[i] + "<br>");
}
最佳答案
由于您使用 document.write
将数组元素写入文档,因此在内容已写入 DOM 的情况下,需要更多时间才能将其反射(reflect)给用户。我使用了相同的代码,但没有使用 document.write
,而是使用 console.log
并且它按预期工作。
在您的情况下我能找到的唯一解决方法是使用 setTimeout
函数。
Check out this fiddle to see it in action
此外,alert和prompt等对话框会停止整个javascript的执行,直到采取操作为止,这使得只有在提示框上单击“取消”或“确定”后才能反射(reflect)写入的内容。
关于javascript - 如何在脚本第一次运行时在 Javascript 中打印一组名称,然后在第二次运行时出现提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44975693/