激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語(yǔ)言 - JavaScript - js教程 - 在JavaScript中查找字符串中最長(zhǎng)單詞的三種方法(推薦)

在JavaScript中查找字符串中最長(zhǎng)單詞的三種方法(推薦)

2022-01-04 16:25Hunter網(wǎng)絡(luò)安全 js教程

這篇文章主要介紹了在JavaScript中查找字符串中最長(zhǎng)單詞的三種方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本文基于Free Code Camp基本算法腳本“查找字符串中最長(zhǎng)的單詞”。

在此算法中,我們要查看每個(gè)單詞并計(jì)算每個(gè)單詞中有多少個(gè)字母。然后,比較計(jì)數(shù)以確定哪個(gè)單詞的字符最多,并返回最長(zhǎng)單詞的長(zhǎng)度。

在本文中,我將解釋三種方法。首先使用FOR循環(huán),其次使用sort()方法,第三次使用reduce()方法。

算法挑戰(zhàn)

  • 返回提供的句子中最長(zhǎng)單詞的長(zhǎng)度。
  • 您的回復(fù)應(yīng)該是一個(gè)數(shù)字。

提供的測(cè)試用例

  • findLongestWord(“The quick brown fox jumped over the lazy dog”)返回一個(gè)數(shù)字
  • findLongestWord(“The quick brown fox jumped over the lazy dog”)返回6
  • findLongestWord(“May the force be with you”)返回5
  • findLongestWord(“Google do a barrel roll”)返回6
  • findLongestWord(“What is the average airspeed velocity of an unladen swallow”)返回8
  • findLongestWord(“What if we try a super-long word such as otorhinolaryngology”)返回19
?
1
2
3
4
function findLongestWord(str) {
 return str.length;
}
findLongestWord("The quick brown fox jumped over the lazy dog");

1.使用FOR循環(huán)查找最長(zhǎng)的單詞

對(duì)于此解決方案,我們將使用String.prototype.split()方法

  • split()的方法通過(guò)分離串分成子串分割字符串對(duì)象到字符串?dāng)?shù)組。

我們將需要在split()方法的括號(hào)之間添加一個(gè)空格

?
1
var strSplit = “The quick brown fox jumped over the lazy dog”.split(‘ ‘);

它將輸出一個(gè)由單詞組成的數(shù)組:

?
1
var strSplit = [“The”, “quick”, “brown”, “fox”, “jumped”, “over”, “the”, “lazy”, “dog”];

如果不在括號(hào)中添加空格,則將得到以下輸出:

?
1
2
var strSplit =
[“T”, “h”, “e”, “ “, “q”, “u”, “i”, “c”, “k”, “ “, “b”, “r”, “o”, “w”, “n”, “ “, “f”, “o”, “x”, “ “, “j”, “u”, “m”, “p”, “e”, “d”, “ “, “o”, “v”, “e”, “r”, “ “, “t”, “h”, “e”, “ “, “l”, “a”, “z”, “y”, “ “, “d”, “o”, “g”];
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function findLongestWord(str) {
 // Step 1. Split the string into an array of strings
 var strSplit = str.split(' ');
 // var strSplit = "The quick brown fox jumped over the lazy dog".split(' ');
 // var strSplit = ["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"];
 
 // Step 2. Initiate a variable that will hold the length of the longest word
 var longestWord = 0;
 
 // Step 3. Create the FOR loop
 for(var i = 0; i < strSplit.length; i++){
 if(strSplit[i].length > longestWord){ // If strSplit[i].length is greater than the word it is compared with...
 longestWord = strSplit[i].length; // ...then longestWord takes this new value
  }
 }
 /* Here strSplit.length = 9
  For each iteration: i = ? i < strSplit.length? i++ if(strSplit[i].length > longestWord)? longestWord = strSplit[i].length
  1st iteration:  0    yes    1 if("The".length > 0)? => if(3 > 0)?  longestWord = 3
  2nd iteration:  1    yes    2 if("quick".length > 3)? => if(5 > 3)? longestWord = 5
  3rd iteration:  2    yes    3 if("brown".length > 5)? => if(5 > 5)? longestWord = 5
  4th iteration:  3    yes    4 if("fox".length > 5)? => if(3 > 5)?  longestWord = 5
  5th iteration:  4    yes    5 if("jumped".length > 5)? => if(6 > 5)? longestWord = 6
  6th iteration:  5    yes    6 if("over".length > 6)? => if(4 > 6)? longestWord = 6
  7th iteration:  6    yes    7 if("the".length > 6)? => if(3 > 6)?  longestWord = 6
  8th iteration:  7    yes    8 if("lazy".length > 6)? => if(4 > 6)? longestWord = 6
  9th iteration:  8    yes    9 if("dog".length > 6)? => if(3 > 6)?  longestWord = 6
  10th iteration:  9    no   
  End of the FOR Loop*/
 
 //Step 4. Return the longest word
 return longestWord; // 6
}
 
findLongestWord("The quick brown fox jumped over the lazy dog");

沒(méi)有注釋:

?
1
2
3
4
5
6
7
8
9
10
11
function findLongestWord(str) {
 var strSplit = str.split(' ');
 var longestWord = 0;
 for(var i = 0; i < strSplit.length; i++){
 if(strSplit[i].length > longestWord){
 longestWord = strSplit[i].length;
  }
 }
 return longestWord;
}
findLongestWord("The quick brown fox jumped over the lazy dog");

2.使用sort()方法找到最長(zhǎng)的單詞

對(duì)于此解決方案,我們將使用Array.prototype.sort()方法按照某種排序標(biāo)準(zhǔn)對(duì)數(shù)組進(jìn)行排序,然后返回此數(shù)組的第一個(gè)元素的長(zhǎng)度。

  • sort()的方法進(jìn)行排序的陣列的代替元素并返回?cái)?shù)組。

就我們而言,如果我們只是對(duì)數(shù)組排序

?
1
var sortArray = [“The”, “quick”, “brown”, “fox”, “jumped”, “over”, “the”, “lazy”, “dog”].sort();

我們將得到以下輸出:

?
1
var sortArray = [“The”, “brown”, “dog”, “fox”, “jumped”, “lazy”, “over”, “quick”, “the”];

在Unicode中,數(shù)字在大寫(xiě)字母之前,而在小寫(xiě)字母之前。

我們需要按照某種排序標(biāo)準(zhǔn)對(duì)元素進(jìn)行排序

?
1
[].sort(function(firstElement, secondElement) {  return secondElement.length — firstElement.length; })

比較第二個(gè)元素的長(zhǎng)度和數(shù)組中第一個(gè)元素的長(zhǎng)度。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function findLongestWord(str) {
 // Step 1. Split the string into an array of strings
 var strSplit = str.split(' ');
 // var strSplit = "The quick brown fox jumped over the lazy dog".split(' ');
 // var strSplit = ["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"];
 
 // Step 2. Sort the elements in the array
 var longestWord = strSplit.sort(function(a, b) {
 return b.length - a.length;
 });
 /* Sorting process
 a   b   b.length  a.length  var longestWord
 "The"  "quick"   5   3   ["quick", "The"]
 "quick" "brown"   5   5   ["quick", "brown", "The"]
 "brown" "fox"    3   5   ["quick", "brown", "The", "fox"]
 "fox"  "jumped"   6   3   ["jumped", quick", "brown", "The", "fox"]
 "jumped" "over"    4   6   ["jumped", quick", "brown", "over", "The", "fox"]
 "over"  "the"    3   4   ["jumped", quick", "brown", "over", "The", "fox", "the"]
 "the"  "lazy"    4   3   ["jumped", quick", "brown", "over", "lazy", "The", "fox", "the"]
 "lazy"  "dog"    3   4   ["jumped", quick", "brown", "over", "lazy", "The", "fox", "the", "dog"]
 */
 
 // Step 3. Return the length of the first element of the array
 return longestWord[0].length; // var longestWord = ["jumped", "quick", "brown", "over", "lazy", "The", "fox", "the", "dog"];
        // longestWord[0]="jumped" => jumped".length => 6
}
 
findLongestWord("The quick brown fox jumped over the lazy dog");

沒(méi)有注釋:

?
1
2
3
4
5
function findLongestWord(str) {
 var longestWord = str.split(' ').sort(function(a, b) { return b.length - a.length; });
 return longestWord[0].length;
}
findLongestWord("The quick brown fox jumped over the lazy dog");

3.使用reduce()方法找到最長(zhǎng)的單詞

對(duì)于此解決方案,我們將使用Array.prototype.reduce()。

  • reduce()的方法應(yīng)用于對(duì)一個(gè)儲(chǔ)液器的功能和所述陣列的每一值(從左到右),以將其降低到一個(gè)值。

reduce()對(duì)數(shù)組中存在的每個(gè)元素執(zhí)行一次回調(diào)函數(shù)。

您可以提供一個(gè)初始值作為要減少的第二個(gè)參數(shù),這里我們將添加一個(gè)空字符串“”。

?
1
[].reduce(function(previousValue, currentValue) {...}, “”);
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function findLongestWord(str) {
 // Step 1. Split the string into an array of strings
 var strSplit = str.split(' ');
 // var strSplit = "The quick brown fox jumped over the lazy dog".split(' ');
 // var strSplit = ["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"];
 
 // Step 2. Use the reduce method
 var longestWord = strSplit.reduce(function(longest, currentWord) {
 if(currentWord.length > longest.length)
  return currentWord;
 else
  return longest;
 }, "");
 
 /* Reduce process
 currentWord  longest  currentWord.length  longest.length if(currentWord.length > longest.length)? var longestWord
 "The"    ""     3      0        yes       "The"
 "quick"   "The"    5      3        yes       "quick"
 "brown"   "quick"    5      5        no       "quick"
 "fox"    "quick"    3      5        no       "quick"
 "jumped"   "quick"    6      5        yes       "jumped"
 "over"   "jumped"   4      6        no       "jumped"
 "the"    "jumped"   3      6        no       "jumped"
 "lazy"   "jumped"   4      6        no       "jumped"
 "dog"    "jumped"   3      6        no       "jumped"
 */
 
 // Step 3. Return the length of the longestWord
 return longestWord.length; // var longestWord = "jumped"
        // longestWord.length => "jumped".length => 6
}
 
findLongestWord("The quick brown fox jumped over the lazy dog");

沒(méi)有注釋:

?
1
2
3
4
5
6
7
function findLongestWord(str) {
 var longestWord = str.split(' ').reduce(function(longest, currentWord) {
 return currentWord.length > longest.length ? currentWord : longest;
 }, "");
 return longestWord.length;
}
findLongestWord("The quick brown fox jumped over the lazy dog");

到此這篇關(guān)于在JavaScript中查找字符串中最長(zhǎng)單詞的三種方法的文章就介紹到這了,更多相關(guān)js查找字符串最長(zhǎng)單詞內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/qq_25879801/article/details/111408976

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文欧美日韩 | 超碰99在线观看 | 一级黄色在线观看 | 国产亚洲精品美女久久久 | 曰批全过程40分钟免费视频多人 | 在线观看中文字幕av | 中文字幕在线观看免费视频 | 欧美 videos粗暴| 一区二区三区毛片 | 欧美性受xxxxxx黑人xyx性爽 | 草莓福利视频在线观看 | 日本精品一区二区 | 最近中文字幕一区二区 | 日韩视频不卡 | 一级视频在线播放 | 美女毛片儿 | www.9191.com| 国产中出视频 | 亚洲精品久久久久久 | 久久老司机精品视频 | 日日天日日夜日日摸 | 亚洲91精品 | 黑人一级片| 日本在线免费观看 | 国产精品999在线观看 | 亚洲男人天堂 | 男女羞羞视频在线观看免费 | japanese javhd| 欧美激情精品久久久久久黑人 | 成年人网站国产 | 国产精品麻豆91 | 久久久久久久免费视频 | 一区二区三区欧美日韩 | 黄色av网站免费看 | 午夜精品久久久久久中宇 | 少妇一级淫片高潮流水电影 | 美国一级毛片片aa久久综合 | 精品一区二区三区免费毛片 | 日韩在线黄 | 国产精品久久久久久久久粉嫩 | 嫩呦国产一区二区三区av |