javascript - 如何在脚本第一次运行时在 Javascript 中打印一组名称,然后在第二次运行时出现提示?

标签 javascript arrays loops for-loop while-loop

这是练习:

创建一个包含员工列表的小程序 名称。程序运行时打印出姓名列表 第一次。提示输入员工姓名并删除 姓名列表中的特定姓名。显示 剩下的员工,每个人都有自己的生产线。

示例输出

<小时/>

共有 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/

相关文章:

loops - SASS 循环选择器

eclipse - 调试循环

javascript - 获取两个数组中具有匹配值的对象

arrays - 警告 : A long-running operation is being executed on the main thread. 尝试一下!获取数据()。 swift

JavaScript 获取 API : accessing local variable globally

arrays - 如何在Excel的vba中初始化多维数组变量

python - 在python2中添加

javascript - jQuery DataTables fnGetPosition 不是一个函数吗?

javascript - 如何像另一个对象一样构建一个对象?

javascript - 一个 JavaScript 函数,用于更新多个隐藏字段,具体取决于它们是否存在