Javascript 句子代码中最长的单词不起作用

Javascript 句子代码中最长的单词不起作用,javascript,string,for-loop,split,Javascript,String,For Loop,Split,谁能帮我解决这个问题。它似乎工作不正常。它应该在输入的任何字符串中找到最长的单词。当我运行它时,它返回字符串的第一个字符 function LongestWord(sen) { var lrg = ''; sen.split(" ");//seperates sen into words for(var i = 0;i<sen.length;i++){ var check1 = sen[i];//assigns check1 as word in sen

谁能帮我解决这个问题。它似乎工作不正常。它应该在输入的任何字符串中找到最长的单词。当我运行它时,它返回字符串的第一个字符

function LongestWord(sen) { 

  var lrg = '';

  sen.split(" ");//seperates sen into words

  for(var i = 0;i<sen.length;i++){
    var check1 = sen[i];//assigns check1 as word in sen
    if(check1.length>lrg.length){//assigns length of longest word
      lrg = check1;

       }

  }
      return lrg; 

}

// keep this function call here 
// to see how to enter arguments in JavaScript scroll down
LongestWord(readline()); 
该方法返回一个新数组。试试这个:

var arr = sen.split(" ");
for(var i = 0; i < arr.length; i++) {
    var check1 = arr[i];
    if(check1.length>lrg.length) {
        lrg = check1;
    }
}

return lrg; 
该方法返回一个新数组。试试这个:

var arr = sen.split(" ");
for(var i = 0; i < arr.length; i++) {
    var check1 = arr[i];
    if(check1.length>lrg.length) {
        lrg = check1;
    }
}

return lrg; 

您还可以使用正则表达式检查字符串是否匹配

var sentence = "seperates sen into words";
var splittedParts = sentence.match(/\w{1,}/gi);//You can also make use of regular //expression
for(var i = 0; i < splittedParts.length; i++) {
    var check1 = splittedParts[i];
    if(check1.length>=splittedParts.length) {
        splittedParts = check1;
    }
}
  alert(splittedParts);

您还可以使用正则表达式检查字符串是否匹配

var sentence = "seperates sen into words";
var splittedParts = sentence.match(/\w{1,}/gi);//You can also make use of regular //expression
for(var i = 0; i < splittedParts.length; i++) {
    var check1 = splittedParts[i];
    if(check1.length>=splittedParts.length) {
        splittedParts = check1;
    }
}
  alert(splittedParts);

如果您匹配单词并按长度排序,最长优先

数组中的第一个字将是最长的

function longestWord(str){
    return str.match(/[a-zA-Z]+/g).sort(function(a, b){
        if(a.length=== b.length) return a<b? 1: a>b? -1: 0;
        return b.length-a.length;
    })[0];
}
var s1= 'It\'s more like it is today, than it ever was before.';


longestWord(s1)
/*返回值:字符串:before*/

可以使用筛选器返回相同长度的数组-

function longestWords(str){
    return str.match(/[a-zA-Z]+/g).sort(function(a, b){
        if(a.length=== b.length) return a<b? 1: a>b? -1: 0;
        return b.length-a.length;
    }).filter(function(w, i, A){
        return w.length=== A[0].length;
    });
}

var s1= 'It  became more like it is today, than it ever did before.';
longestWords(s1)

/*返回值:Array:before,变成*/

如果匹配单词并按长度排序,则最长优先

数组中的第一个字将是最长的

function longestWord(str){
    return str.match(/[a-zA-Z]+/g).sort(function(a, b){
        if(a.length=== b.length) return a<b? 1: a>b? -1: 0;
        return b.length-a.length;
    })[0];
}
var s1= 'It\'s more like it is today, than it ever was before.';


longestWord(s1)
/*返回值:字符串:before*/

可以使用筛选器返回相同长度的数组-

function longestWords(str){
    return str.match(/[a-zA-Z]+/g).sort(function(a, b){
        if(a.length=== b.length) return a<b? 1: a>b? -1: 0;
        return b.length-a.length;
    }).filter(function(w, i, A){
        return w.length=== A[0].length;
    });
}

var s1= 'It  became more like it is today, than it ever did before.';
longestWords(s1)
/*返回值:Array:before,before*/

split不会变异原始字符串。split不会变异原始字符串。