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