[英]find & return the longest word in javascript
有人可以讓我知道這里出了什么問題嗎? 每當我將其輸入為測試用例時(console.log(longestWord(“到底發生了什么事”)),當最長的單詞返回“ what”時,它幾乎可以在我測試過的所有其他情況下使用...讓我發瘋,請幫忙,謝謝!!!
function longestWord(string) {
var words = string.split(' ');
for (var i = 0; i < words.length; i++) {
var currentWord = words[i];
var longestWord = words[0];
if (longestWord.length < currentWord.length) {
longestWord = currentWord;
}
}
return longestWord;
}
您正在循環的每次迭代中重置最長的單詞。 在循環運行之前設置初始(第一個)最長的字,然后它將正常工作。
function longestWord(string) { var words = string.split(' '); // Set the intial longest word out here var longestWord = words[0]; // Need to loop through from index 1 for (var i = 1; i < words.length; i++) { var currentWord = words[i]; // Setting the longest word to the initial word here means that it will set the longest word to be "what" everytime your loop runs. if (longestWord.length < currentWord.length) { longestWord = currentWord; } } return longestWord; } console.log(longestWord("What the hell is going on"));
喬丹給您正確的答案。 我們還可以使用sort函數並返回第一個元素,如下所示:
function longestWord(string) { var words = string.split(' '); return words.sort(function (a, b) { return b.length - a.length; })[0]; } console.log(longestWord("what the hell is going on"))
我貼上ES6單線紙,以防萬一...
let longestWord = str => str.split(' ').sort((a, b) => b.length - a.length)[0]; console.log(longestWord("what the hell is going on"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.