2017-08-12 56 views
0

Heyo每個人,所以我有這個練習,我需要檢查哪個字符串是最長的數組。此代碼有效,但如果瞭解它的縮減部分,我不是100%確定的。所以如果我錯了,請糾正我 - 減少開始時總數是'the',num是'quick',因爲'the'比'quick'短,所以它返回'quick'。所以下一次的總數是'快',而數字是'棕'?減少並檢查最長的字符串

function findLongestWord(str) { 

var arr = str.split(' '); 

var longest = arr.reduce(function(total, num){ 

    if(total.length>num.length){ 
    return total; 
    } else { 
    return num; 
    } 

});  


return longest.length; 

} 

findLongestWord("The quick brown fox jumped over the lazy dog"); 
+0

最長的兩個字符串呢? –

回答

2

function findLongestWord(str) { 
 

 
var arr = str.split(' '); 
 

 
var longest = arr.reduce(function(total, num){ 
 
    console.log('total :', total,'num :', num); 
 
    if(total.length>num.length){ 
 
    return total; 
 
    } else { 
 
    return num; 
 
    } 
 

 
});  
 

 

 
return longest.length; 
 

 
} 
 

 
findLongestWord("The quick brown fox jumped over the lazy dog");

它保持服用陣列對的元件由一對,並存儲在總越大變量,較新的字符串進行比較是NUM,因爲它我們在一個比較它會返回最長的字符串

+0

謝謝!可能是關於減少的最佳「解釋」:D –

1

是的。

通過將函數應用於從左到右的每兩個元素來減少工作量。