Javascript 在理解混合“For循环”和“array”的结果时遇到问题(初学者)

Javascript 在理解混合“For循环”和“array”的结果时遇到问题(初学者),javascript,arrays,for-loop,Javascript,Arrays,For Loop,我目前正在学习javascript,我不理解基于特定条件的结果。谢谢你对我这样的新手的耐心 在下面的例子中,我不明白为什么最后一行显示蓝色,因为只有当计数器>0时才显示条件 var table = ['blue','yellow','orange','red']; for (var counter = table.length ; counter > 0 ; counter--) { document.write(table[counter-1] + "<br>") } 查看

我目前正在学习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'

谢谢你的帮助

这是因为在循环中,您使用的是表[counter-1]。
计数器永远不会到达0,但您从中取出1,这使它访问表的第0个元素,因为您使用-

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>")
}
在下一行:

document.writetable[counter-1]+,将计数器递减1。它不会在此处验证条件


使用此计数器-1>0

在索引0中初始化JavaScript数组。在条件中,从长度数组循环到1计数器>0,但当打印数组项时,得到计数器-1,如果计数器等于1,则得到数组索引0。

您知道在访问数组时从计数器中减去1吗?是的,我知道,因为如果不这样做,显示的第一个值将是未定义的表[4]。谢谢你的回答,我会稍后测试。你要知道的是,我是从一本我正在学习JS Jquery missing manual的书中得到这个方法的。这就是为什么我觉得它很有趣,我问了这个问题。我第一次在这个网站上发布。谢谢给我的问题评分较低的人。对不起,这可能是个愚蠢的问题,但是我目前处于哑巴级别;只是试图理解这本书的逻辑…请记住数组索引是基于0的,而长度值不是。在var I=arr.length-1开始这样一个循环,感谢Mahmud花时间添加代码;