可能是一个愚蠢的问题,但为什么这个简单的循环会崩溃?
HTML:
<p></p>
JS:
var array = ["1", "2", "3", "4"];
for(var x = 0; x = array.length; x++) {
$("p").html(array[x]);
}
示例小提琴keypress event。
答案 0 :(得分:4)
因为x = array.length
不是“真正的”条件,所以无论如何,相等在迭代中没有意义。
试试这个:
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
答案 1 :(得分:1)
你有2个错误:
1,你不测试病情。 x = array.length;
是归因而不是比较。您将array.length归因于x而不是比较它们。相关比较陈述将是:
x == array.length;
和第二,即使它是一个比较,它也会超过数组长度,因为数组索引它是从零开始的。
所以正确的是:
var array = ["1", "2", "3", "4"];
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
答案 2 :(得分:0)
如果您的数组有关键,那么您的条件将是真实的,就像一个while循环。
var array = ["1", "2", "3", "4"];
for(var x = 0; x < array.length; x++) {
$("p").html(array[x]);
}
这将停在最后一个元素上。
答案 3 :(得分:0)
你的循环基于x,用0初始化。
通过执行以下命令评估循环条件:
x = array.length
返回x的值,不等于0,&#39;&#39;,false,undefined或null,因此这个条件总是为正。
循环继续迭代,一遍又一遍,总是为x分配相同的值,这会产生无限循环。
答案 4 :(得分:-1)
尝试使用x < array.length
代替x = array.length