Javascript 查找字符串中最长的单词?
我正在尝试编写一个基本的javascript函数来查找字符串中最长的单词并记录其长度 到目前为止,我已经:Javascript 查找字符串中最长的单词?,javascript,function,for-loop,return,Javascript,Function,For Loop,Return,我正在尝试编写一个基本的javascript函数来查找字符串中最长的单词并记录其长度 到目前为止,我已经: function findLongestWord(str) { var words = []; var longest = []; words.push(str.split(" ")); for(var i = 0; i < words.length; i++){ if (words[i].length > longest[0].length){
function findLongestWord(str) {
var words = [];
var longest = [];
words.push(str.split(" "));
for(var i = 0; i < words.length; i++){
if (words[i].length > longest[0].length){
longest.push(words[i]);
}
}
return longest[0].length;
}
findLongestWord('The quick brown fox jumped over the lazy dog');
函数findLongestWord(str){
var-words=[];
var最长=[];
字.推(str.split(“”);
for(var i=0;i最长[0].长度){
推(字[i]);
}
}
返回最长[0]。长度;
}
findlongest(敏捷的棕色狐狸跳过了懒狗);
这对我来说很有意义,但它给了我一个错误。我尝试了console.logging每个步骤,但在for循环中失败了
if (words[i].length > longest[0].length)
您将在上面的行中得到错误。和第一次一样,它是空的
您将在上面的行中得到错误。与第一次一样,它是空的。您的声明
words.push(str.split(" "));
应该是
words=str.split(" ")
@Tushar也解决了你剩下的“问题”…;-) 你的声明
words.push(str.split(" "));
应该是
words=str.split(" ")
@Tushar也解决了你剩下的“问题”…;-) 使用
words.push(str.split(“”)
时,数组words
如下所示
[
["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"]
]
另一个问题是,当您在的
中为第一次迭代检查最长[0].length
时,它是未定义的。这导致了错误
未捕获的TypeError:无法读取未定义的属性“length”
要解决此问题,可以使用最长
作为字符串
,而不是数组
。在
的中,将长度
大于当前最长
字符串的字符串分配给它
在函数末尾,您可以返回最长的
字符串
问题/建议:
使用str.split(“”)
直接赋值给words
变量
使用最长
作为字符串
变量,而不是数组
,初始化
为空字符串,即'
,以避免上述错误
将最长的
的长度与单词
数组中的字符串进行比较
如果单词
数组中的字符串长度大于最长
,请更新最长
使用\s+
将字符串按空格拆分
函数findLongestWord(str){
var words=str.split(/\s+/);
var最长=“”;
for(var i=0;i最长.length){
最长=单词[i];
}
}
返回时间最长;
}
var longestWord=findLongestWord(“敏捷的棕色狐狸跳过了懒狗”);
文件。写('最长单词:'+longestWord+'”);
document.write(“
最长字长:”+longestWord.Length)
使用words.push(str.split(“”)
时,数组words
如下所示
[
["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"]
]
另一个问题是,当您在
的中为第一次迭代检查最长[0].length
时,它是未定义的。这导致了错误
未捕获的TypeError:无法读取未定义的属性“length”
要解决此问题,可以使用最长
作为字符串
,而不是数组
。在
的中,将长度
大于当前最长
字符串的字符串分配给它
在函数末尾,您可以返回最长的
字符串
问题/建议:
使用str.split(“”)
直接赋值给words
变量
使用最长
作为字符串
变量,而不是数组
,初始化
为空字符串,即'
,以避免上述错误
将最长的
的长度与单词
数组中的字符串进行比较
如果单词
数组中的字符串长度大于最长
,请更新最长
使用\s+
将字符串按空格拆分
函数findLongestWord(str){
var words=str.split(/\s+/);
var最长=“”;
for(var i=0;i最长.length){
最长=单词[i];
}
}
返回时间最长;
}
var longestWord=findLongestWord(“敏捷的棕色狐狸跳过了懒狗”);
文件。写('最长单词:'+longestWord+'”);
document.write(“
最长字长:”+longestWord.Length)代码>您可以使用和大大简化此过程。比如说
var str='敏捷的棕色狐狸跳过了懒狗',
最长=str.split(“”).sort(函数a,b){
返回b.length-a.length;
}).shift();
document.getElementById('word').innerHTML=最长;
document.getElementById('length').innerHTML=longest.length代码>
您可以大大简化此操作,并使用和。比如说
var str='敏捷的棕色狐狸跳过了懒狗',
最长=str.split(“”).sort(函数a,b){
返回b.length-a.length;
}).shift();
document.getElementById('word').innerHTML=最长;
document.getElementById('length').innerHTML=longest.length代码>
试试看
函数最长字(字符串){
var str=string.split(“”);
var=0;
var-word=null;
对于(变量i=0;i
试试看
函数最长字(字符串){
var str=string.split(“”);
var=0;
var-word=null;
对于(变量i=0;i