【发布时间】:2018-02-17 22:19:27
【问题描述】:
所以我试图在字符串数组中找到最长的字符串。在我必须返回最长字符串的长度之前,我已经做过类似的问题。问题是,我的代码可以正常工作并返回 11,如下所示:
var long1= 0;
var plorp = ["bbllkw", "oox", "ejjuyyy", "plmiis", "xxxzgpsssa", "xxwwkktt", "znnnnfqknaz", "qqquuhii", "dvvvwz"];
function longestString(arr){
for (i=0; i<arr.length; i++){
if (arr[i].length > long1){
long1= arr[i].length;
}
}
return long1;
}
但是,如果我将long1= arr[i].length; 更改为long1 = arr[i];,它只会返回arr[0]。我在这里错过了什么吗?否则循环似乎可以正确迭代。
编辑:也就是说,它返回bbllkw。
【问题讨论】:
-
你正在用一个字符串覆盖一个整数值,并试图将一个变量用于多个事情。您应该在末尾保留
long1= arr[i].length和return arr[long1]。 -
@the4akman 你不正确。
long1包含最长长度而不是索引。所以arr[long1]很可能是未定义的。
标签: javascript arrays string for-loop