【发布时间】:2020-04-17 21:46:24
【问题描述】:
任务是给定由单个空格分隔的单词字符串,计算每个单词的分数(a = 1、b = 2、c = 3 等)并返回分数最高的单词。如果单词具有相同的分数,则应返回给定字符串中首先出现的单词。 CodeWars 再次欺骗我,我只有一个测试不能证明我的代码有效,其余的都可以:/
function high(x){
const arr = x.split(' ');
let score = 0;
let highestWord = undefined;
var currentScore = 0;
arr.map((word) => {
currentScore = word.split('').reduce((sum, letter) => {
return sum + letter.charCodeAt(0) - 64;
}, 0);
if (currentScore > score) {
score = currentScore;
highestWord = word;
}
});
return highestWord;
}
【问题讨论】:
-
什么输入失败了?需要输入和预期输出的minimal reproducible example - 我们无法调试我们看不到的问题
-
如果你没有分配结果,不要使用
map(),使用forEach()。 -
@CertainPerformance 我不认为挑战网站会告诉你输入失败的原因。
-
不幸的是,如果没有“期望的行为和特定的问题或错误”,这个问题就离题了。 IIRC,您可以“购买”测试用例以查看失败的地方,如果您需要调试帮助,您需要找出一个说明问题的案例,或者购买它
标签: javascript arrays string