我目前正在研究javascript,我不了解基于特定条件的结果。感谢您对像我这样的新手的耐心;)
在下面的情况中,我不明白为什么显示最后一行“蓝色”,因为条件是“仅当计数器> 0时显示”。
var table = ['blue','yellow','orange','red'];
for (var counter = table.length ; counter > 0 ; counter--)
{
document.write(table[counter-1] + "<br>")
}
查看结果的另一种方法是:
var table = ['blue','yellow','orange','red'];
document.write(table[table.length-1] + '<br>'); // result: table[3] "red"
document.write(table[table.length-2] + '<br>'); // result: table[2] "orange"
document.write(table[table.length-3] + '<br>'); // result: table[1] "yellow"
document.write(table[table.length-4] + '<br>'); // result: table[0] "blue" = should not be displayed if we have the condition 'counter > 0'
感谢您的帮助!
答案 0 :(得分:1)
因为您正在使用 -
var table = ['blue','yellow','orange','red'];
for (var counter = table.length ; counter > 0 ; counter--)
{
document.write(table[counter-1] + "<br>") //when table has 4 item, counter = 1, counter > 0, table[counter - 1] = table[0]
}
换句话说,您的代码可以完美地打印所有内容。如果您想跳过最后一个,请执行此操作 -
var table = ['blue','yellow','orange','red'];
for (var counter = table.length - 1; counter > 0 ; counter--)
{
document.write(table[counter] + "<br>")
}
答案 1 :(得分:1)
在以下行中:
document.write(table[counter-1] + "<br>")
,您将计数器递减1.它不会验证此处的条件。
使用此counter - 1 > 0
答案 2 :(得分:0)
这是因为在你的循环中,你正在使用table[counter-1]
。
计数器永远不会到达0
,但你从中取走1,这使得它可以访问table
答案 3 :(得分:0)
在JavaScript中,数组在索引0中启动。在条件中,您从长度数组循环到1&#34;计数器&gt; 0&#34;但是当你打印数组项时你得到counter-1,如果counter等于1,你将获得数组索引0。