簡體   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