繁体   English   中英

此代码如何知道返回字符串中最长单词的长度?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM