【发布时间】:2021-02-07 17:25:59
【问题描述】:
所以解决这个问题的指令是:“对于这个挑战,你将确定字符串中的最大单词。”
因为我使用的是 JS,所以挑战里面的指令是:
使用 JavaScript 语言,让 LongestWord(sen) 函数接受传递的 sen 参数并返回字符串中最大的单词。如果有两个或多个长度相同的单词,则返回字符串中具有该长度的第一个单词。忽略标点符号并假设 sen 不会为空。
这是我的代码:
function LongestWord(sen){
if (typeof sen !== "string") return "Argument not a string";
var senSplit = sen.split(" "); //split up the string
// console.log(senSplit); //into an array of words
for (var i in senSplit){ //strip out non-alphanumeric characters
senSplit[i] = senSplit[i].replace(/\W/g, '');
// console.log(senSplit[i]);
}
var wordSplit = new Array();
for (var j in senSplit){ //split up the strings into character arrays
wordSplit[j] = senSplit[j].split("");
// console.log(wordSplit[j]);
}
var longest = 0;
var longWord = "";
for (var k in senSplit){ //compare length of character arrays
if (wordSplit[k].length > longest){
longest = wordSplit[k].length;
longWord = wordSplit[k];
}
}
sen = longWord.join("");
return sen; //return longest word
}
console.log(LongestWord("Archer is the best cartoon on tv"));
//cartoon
但它只是说“错误”,仅此而已......我没有按照说明进行操作吗??
【问题讨论】:
-
1.您的代码无法运行(缺少大括号)。 2. 你应该在你定义的一些输入/输出上测试你的代码。在这里你只是发布你的代码并为我说调试
-
试试
LongestWord(""),例如。 (我认为你不需要拆分和加入单个单词;你可以直接使用字符串'length。如果你想拆分和加入,longWord的初始值应该是一个空数组。) -
@grodzi 其实我忘记写了..我刚刚编辑了我的代码。
-
@MOehm 出于某种原因,我在检查单词长度时一直遇到错误,我可能拼错了一些东西(?)所以我将单词进一步拆分,只是为了显示代码谁是老板。
-
我认为您的“去除非字母数字”可能有一些问题(单词的定义是什么?他们是否指定它必须只是字母数字?重音或 utf8 字符(如 ㄲ ) ?)
标签: javascript algorithm