javascript - 为什么我不能用 coderbyte 挑战 #3 解决这个问题?
问题描述
所以解决这个问题的指令是:“对于这个挑战,你将确定字符串中的最大单词。”
因为我使用的是 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
但它只是说“错误”,仅此而已......我没有按照说明操作还是什么?
解决方案
在不知道使用的输入的情况下,我不确定是什么导致了错误,但是您可以通过消除将每个单词拆分为字符数组的循环来缩短算法。您可以直接获取每个字符串的长度。
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 longest = 0;
var longWord = "";
for (var k in senSplit){ //compare length of character arrays
if (senSplit[k].length > longest){
longest = senSplit[k].length;
longWord = senSplit[k];
}
}
return longWord; // return longest word
}
console.log(LongestWord("Archer is the best cartoon on tv."));
这个实现LongestWord
也直接返回最长的单词,而不是把它分配回输入参数sen
。
推荐阅读
- jekyll - Jekyll,将 html 嵌入为字符串
- python-3.x - IndexError:尝试在python中为扫雷器制作网格时列表索引超出范围
- javascript - 反应 setState 的深度嵌套值
- hazelcast - 地图上的 Hazelcast 3.12 IMap.lock() 比已弃用的 ILock.lock() 更好?
- kotlin - 如何将科学记数法数字转换为带有 kotlinlang 位置的常规小数
- amazon-web-services - 如何将 codebuild 容器中的 access_key 和 secret_key 导出为 env 变量?
- haskell - Data.Serialize 无法解码编码字节
- caching - 在运行时向 Flutter 应用添加动态资源
- c# - 如何模拟自定义 ValueResolver 构造函数参数
- wordpress - docker中的Wordpress cli权限被拒绝错误