Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找字符串中最长的单词?_Javascript_Function_For Loop_Return - Fatal编程技术网

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){

我正在尝试编写一个基本的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){
      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