【发布时间】:2014-08-06 19:11:28
【问题描述】:
好的,所以基本上这段代码将一个句子传递给函数,函数需要找出哪个单词最长返回。一切都很好,除了最后一个字母不断被切断。那么什么是解决这个问题的好方法呢?
function LongestWord(sen) {
sen = sen.toLowerCase();
var build = "";
var arr = [];
var longest = 0;
for(var i = 0; i < sen.length;i++){
var cur = sen.charCodeAt(i);
console.log(sen.charCodeAt(i))
if(i == sen.length - 1){
arr.push(build);
}
if(sen.charAt(i) === " "){
arr.push(build);
build = "";
}
if(cur >= 97 && cur <= 122){
build += String.fromCharCode(cur);
}
}
console.log(arr);
for(var e = 0; e < arr.length - 1;e++){
if(arr[e].length > arr[e + 1].length){
longest = arr[e];
}
else{
longest = arr[e + 1];
}
}
return longest;
}
// keep this function call here
// to see how to enter arguments in JavaScript scroll down
console.log(LongestWord("Johnny ErsoL"));
它返回“Johnny”,这是正确的,但这是数组最后的样子。
[ 'johnny', 'erso' ]
【问题讨论】:
-
这是什么?你只是想返回一个按字符数排序的句子中所有单词的数组吗?
-
原因是你没有读到足够的字符。您应该阅读长度 +1。
标签: javascript