2013-10-16 644 views
-1

我正在javascript for循环中进行测试。为什么javascript for循环仅显示最后一个元素

var items = ['one','two','three'] 
for(var i=0, l=items.length; i < l; i++){ 
    console.log(i); 
    items[i]; 
} 

并且输出如下。

0 
1 
2 
"three" 

为什么只有最后一个项目被打印,如果它不包含在console.log中?

编辑1:我道歉的最初的副本粘贴了。我更新了代码。如果我将项目[i]作为控制台日志的一部分进行打印,它将打印所有三个项目,但不是在外面。

+1

你不想写'items [i]'吗? – pbenard

+0

该代码会给你一个参考错误。 – Andy

+0

什么是'item'?哦,顺便说一句,从来没有见过这样快的问题。虽然我没有这样做。 – Kaf

回答

3

你的循环本身没有问题。你错误的是,考虑"three"作为输出。

"Three"只是这个表达式的最后一个值。

如果你会写

var items = ['one','two','three']; 
for(var i=0; i < items.length; i++){ 
    i; // i itself just calls the variable and does nothing with it. 
     // Test it with the developer console on Google Chrome and you'll notice a 
     // different prefix before the line 
} 

就没有输出,因为只有执行console.log()产生实际输出。如果你想输出i和位置i的数组中的值,你的代码是:

var items = ['one','two','three']; 
for(var i=0; i < items.length; i++){ 
    console.log(i); 
    console.log(items[i]); 
} 
相关问题