我编写了一个函数,用于输出排队等候的人的姓名和真实生活指数。
var line = ["Sarah", "Mike", "Bob"];
function currentLine(line) {
if (line.length === 0) {
document.write(`The line is currently empty.`);
} else {
var array = [];
for (var i = 0; i < line.length; i++) {
array.push(` ${line.indexOf(line[i+1])}. ${line[i]}`);
}
document.write(`The line is currently:` + array);
}
}
currentLine(line);
当我运行该函数时,输出为:
The line is currently: 1. Sarah, 2. Mike, -1. Bob
JavaScript引擎如何解释循环?Bob -1怎么样?我上次检查2 +1 = 3。
我想自己修复此问题,但我试图了解这个看似直接的循环中发生的情况。
答案在您的分析中是正确的:
Bob -1怎么样?我上次检查2 +1 = 3
在循环的第三次迭代中,i =2。此行以i = 2执行:
line.indexOf(line[i+1])
那么这是什么意思呢?它说让我将元素放置在position (i + 1)
,即位置3或第四个元素。没有第四元素,所以line[i+1]
也没有undefined
。
将其传递给indexOf
呼叫,您要说的是,找到我undefined
在line
阵列中的位置。line
包含“萨拉”,“迈克”和“鲍勃”。不包含undefined
。
我对该array.push
行进行了少量更改,现在可以正常工作:
var line = ["Sarah", "Mike", "Bob"];
function currentLine(line) {
if (line.length === 0) {
document.write(`The line is currently empty.`);
} else {
var array = [];
for (var i = 0; i < line.length; i++) {
array.push(` ${i+1}. ${line[i]}`);
}
document.write(`The line is currently:` + array);
}
}
currentLine(line);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句