Javascript TypeError:无法读取属性';长度';将元素添加到数组时未定义的

Javascript TypeError:无法读取属性';长度';将元素添加到数组时未定义的,javascript,Javascript,我目前正在开发一个javaScript函数,该函数返回字符串数组中最长的字符串。当数组中有三个元素时,它就工作了。但是,如果我向数组中添加另一个元素,它会中断,并给出错误 TypeError:无法读取未定义的属性“length” 这是我的密码: 函数最大的字符串(字符串){ 对于(变量i=0;i字符串[0].length){ var temp=字符串[0]; 字符串[0]=字符串[i+1]; 字符串[i+1]=临时 } } 返回字符串[0]; } log(最大的字符串([“一”,“一”,“一”

我目前正在开发一个javaScript函数,该函数返回字符串数组中最长的字符串。当数组中有三个元素时,它就工作了。但是,如果我向数组中添加另一个元素,它会中断,并给出错误

TypeError:无法读取未定义的属性“length”

这是我的密码:

函数最大的字符串(字符串){
对于(变量i=0;i字符串[0].length){
var temp=字符串[0];
字符串[0]=字符串[i+1];
字符串[i+1]=临时
}
}
返回字符串[0];
}

log(最大的字符串([“一”,“一”,“一”,“一”,“三”,“四]))
函数最大的字符串(字符串){
对于(变量i=1;i字符串[0].length){
var temp=字符串[0];
字符串[0]=字符串[i];
字符串[i]=temp
}
}
返回字符串[0];
}

log(最大的字符串([“一”,“一”,“一”,“一”,“三”,“四]))
我想你的意思是
string[I]
不是
string[I+1]
至于最后一个元素
string[I+1]
将是未定义的!是的。ibrahimmahrir说了些什么。记住数组是从零开始的。@nineBerry我忘了做更改,起初我想转到下一个元素。另外,您可以轻松地查找最大的字符串,而无需进行交换,只需使用一个变量来存储迄今为止最大元素的索引,每次您找到的字符串大于假定的大字符串,将索引存储在该变量中,当然,在进入循环之前,首先必须假设最大的是第一个。