我正在尝试找到字符串中最长的单词,但它会不断返回第一个单词的长度。有什么想法吗?
这是我的代码:
function findLongestWord(str) {
var words = str.split(' ');
var longest = 0;
for (var i=0;i<words.length;i++) {
if (words[i].length > longest) {
longest = words[i].length;
}
return longest;
}
}
答案 0 :(得分:9)
你的return语句应该在for循环之外。 它只执行第一个循环然后退出。
答案 1 :(得分:4)
我是这样做的(我附上一个注释的长版本和一个未注释的短版本):
/***************
* LONG VERSION *
***************/
function findLongestWord(str) {
// Create an array out of the string
var arr = str.split(' ');
// Sort the array from shortest to largest string
arr = arr.sort(function(a, b) {
return a.length-b.length;
});
// The longest string is now at the end of the array
// Get the length of the longest string in the Array
var longestString = arr.pop().length;
// return the lenght of the longest string
return longestString;
}
/*****************
* SHORT VERSION *
****************/
function findLongestWord(str) {
return str
.split(' ')
.sort(function(a, b) { return a.length-b.length; })
.pop().length;
}
答案 2 :(得分:1)
你的return语句放错了地方,把它放在循环之后:
function findLongestWord(str) {
var words = str.split(' ');
var longest = 0;
for (var i=0;i<words.length;i++) {
if (words[i].length > longest) {
longest = words[i].length;
}
}
return longest;
}
答案 3 :(得分:1)
你的回复陈述是在错误的地方,正如mccainz所说,但如果你想要返回实际的词,你也应该保存这个词。
double value
答案 4 :(得分:1)
这是一种功能性方法:
function findLongestWord(str) {
return str
.replace(/[^\w ]/g,'') //remove punctuation
.split(' ') //create array
.sort(function(a, b) {return a.length-b.length;}) //sort in order of word length
.pop(); //pop the last element
}
console.log(findLongestWord('For the next 60s, we will be conducting a test.')); //conducting
&#13;
答案 5 :(得分:1)
我会做这样的事情:
function longestWord(str){
return str.match(/\w+/g).reduce((p,c) => p.length > c.length ? p.length:c.length);
}
答案 6 :(得分:0)
这就是我试图解决的问题:
$.ajax({
url: url,
type: "POST",
dataType: 'json',
data: formData,
processData: false,
contentType: false,
success: function (data) {
}
});
答案 7 :(得分:0)
function findLongestWord(str) {
//This is what I used to find how many characters were in the largest word
return str
.replace(/[^\w ]/g,'')
.split(' ')
.sort(function(a, b) {return a.length-b.length;})
.pop().length;
}
findLongestWord('The quick brown fox jumped over the lazy dog');
答案 8 :(得分:0)
这是我如何做到的。
button.setAttribute('index',i);
var thisIndex= button.getAttribute(this.index);
button.setAttribute('onclick','getProductInfo('+thisIndex+'))';
答案 9 :(得分:0)
尝试使用以下代码示例:
function findLongestWord(str){
var arr=[];
arr=str.split(' ');
arr=arr.sort(function(a,b){
return b.length-a.length;
});
var st=arr[0];
return st.length;
}
findLongestWord("The quick brown fox jumped over the lazy dog");