我想使用提示将名称和年龄插入HTML表。为什么在结果中插入空值?
var i = 0;
var n = new Array();
var a = new Array();
var name = " ",
age = " ";
while (!(name == null || age == null)) {
name = prompt("Enter name: ");
age = prompt("Enter age: ");
n[i] = name;
a[i] = age;
i++;
}
document.writeln("<table border='1' width='25%'>");
document.writeln("<caption>Arrays</caption>");
document.writeln("<th>Name</th><th>Age</th>");
for (var k in n) {
if (!(k == null))
document.writeln("<tr><td>" + n[k] + "</td><td>" + a[k] + "</td></tr>");
}
document.write("</table>");
<h2>JavaScript Arrays</h2>
<p>JavaScript array elements are accesses using numeric indexes (starting from 0).</p>
<p id="demo"></p>
答案 0 :(得分:1)
那是因为您正在检查提示前的空值。在提供姓名或年龄后使用条件。
while(true){
name=prompt("Enter name: ");
age=prompt("Enter age: ");
if(name==null || age==null) break;
n[i]=name;
a[i]=age;
i++;
}
答案 1 :(得分:0)
提示功能在取消/退出时返回null
。
这在MDN documentation of prompt中有解释。为避免在HTML表格中打印null
,仅在存在的情况下才需要打印。
这是条件正确的代码:
var i = 0;
var n = new Array();
var a = new Array();
var name = " ",
age = " ";
while (!(name == null || age == null)) {
name = prompt("Enter name: ");
age = prompt("Enter age: ");
n[i] = name;
a[i] = age;
i++;
}
document.writeln("<table border='1' width='25%'>");
document.writeln("<caption>Arrays</caption>");
document.writeln("<th>Name</th><th>Age</th>");
for (var k in n) {
if(n[k] !== null && a[k] !== null)
document.writeln("<tr><td>" + n[k] + "</td><td>" + a[k] + "</td></tr>");
}
document.write("</table>");
<h2>JavaScript Arrays</h2>
<p>JavaScript array elements are accesses using numeric indexes (starting from 0).</p>
<p id="demo"></p>