[英]How does this code know to return the length of the longest word in the string?
这是我的代码:
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");
我知道它可以工作,但是我不确定为什么它只能选择字符串中最长的单词。 我知道字符串被拆分为一个数组,并且for循环检查数组中每个字符串的长度,但是p=arr[i].length
总是选择要返回的最长字符串?
var arr = str.split(" ");
将字符串拆分为单词数组。
P
保持到目前为止找到的最大长度。
我们遍历单词数组,如果单词长于p
我们将其长度分配给p
在开始时p等于0
for(i = 0; i <arr.length; i ++){//循环数组中的所有单词
如果(arr [i] .length> p){
仅当p(前一个单词的长度)比当前长
p = arr [i] .length; //我用当前长度更新p(并非总是如此,而是根据if语句)
因此,在循环结束时,p等于最长字的长度。
好吧,这很简单:首先,获取第一个单词的长度(arr [0] .length)并将其值存储在p中。
然后,取第二个参数arr [1] .length并将其与存储在p中的第一个参数的长度进行比较。 如果第二个单词大于第一个单词(arr [1]> p),则p变为array [1],依此类推。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.