Charat不起作用



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的最佳实践。

最新更新