这是我的代码:
function findLongestWord(str) {
var arr = str.split(" ");
var p = 0;
for (i = 0; i < arr.length; i++) {
if (arr[i].length > p){
p = arr[i].length;
}
}
return p;
}
findLongestWord("The quick brown fox jumped over the lazy dog");
我知道它有效,但我不确定为什么它只能挑出字符串中最长的单词。我理解sting会被拆分成一个数组,for循环会检查数组中每个字符串的长度,但p=arr[i].length
总是选择最长的一个返回?
答案 0 :(得分:2)
var arr = str.split(" ");
将字符串拆分为单词数组。
P
保留到目前为止找到的最大长度。
我们迭代单词数组,如果单词比p
更长,我们将其长度分配给p
答案 1 :(得分:1)
在开始时p等于0
for(i = 0; i&lt; arr.length; i ++){//循环数组中的所有单词
if(arr [i] .length&gt; p){
仅当p(前一个字的长度)长于当前
时p = arr [i] .length; //我用当前长度更新p(并不总是,但根据if语句)
所以在循环结束时,p等于最长单词的长度。
答案 2 :(得分:0)
嗯,这很简单: 首先取第一个单词的长度(arr [0] .length)并将值存储在p。
中然后你取第二个是arr [1] .length并将它与第一个存储在p中的长度进行比较。如果第二个字大于第一个字(arr [1]> p),则p变为数组[1]等。