charat"当数组[]定义为for for for for for for for for for。
时无法读取属性。var array =["5seconds","1seconds","234seconds","57"];
var time = ""
for(var i=0;i<=4;i++)
{
time= array[i].charAt(0);
}
document.write(time);
您在for(var i=0;i<=4;i++)
中有一个错字,该错字会导致上一次迭代中的错误。将其更改为for(var i=0;i<4;i++)
或for(var i=0;i<array.length;i++)
var array =["5seconds","1seconds","234seconds","57"];
var time = ""
for(var i=0;i<4;i++)
{
time= array[i].charAt(0);
console.log(time);
}
将文档.write移至for循环内部允许第一个索引(0)到每个字符串的日志。这是一个片段:
var array =["5seconds","1seconds","234seconds","57"];
var time = "";
for(var i=0;i< array.length;i++)
{
time = array[i].charAt(0)
document.write(time); //goes inside the array, then it will log each 0 index
}
您的循环是从0到4,因此在某些时候,您正在尝试获取数组的位置4的位置4,这是不存在的。这导致错误。您应该在循环中进行此更改:
for (var i = 0; i < 4; i++)
我想我应该说,从字符串中抽出时间的方法不是很有效。您只使用Charat(0)获得第一个数字。另一种选择是以下方式存储在您的数组中:
var array = ["5 seconds", "1 seconds", "234 seconds"].
然后,您不必在所有空格中拆分字符串,而仅获得第一个位置(0),这将是您想要的数字。这样:
time = array.split(" ")[0].
当其他人指出的循环走得太远,最后一个索引是长度-1,因此,如果您有4个元素,则最后一个索引为3。这就是为什么它是3做> = array.length -1或> array.length的最佳实践。