gpt4 book ai didi

javascript - 如何使用函数开发评分算法

转载 作者:行者123 更新时间:2023-11-28 16:59:28 26 4
gpt4 key购买 nike

因此,我尝试创建一种单词评分算法,为每个辅音给出 1 分,为每个元音给出 3 分。但是过去两周我尝试的每一次尝试都失败了,这意味着有些东西不适合我,我需要帮助来理解我做错了什么

我在整个网络上进行了搜索,发现了多种检查字母的方法,我尝试过自定义和使用我的评分算法,但在测试每种方法时,我仍然不断得到错误的评分输出。

const oldScoreKey = {
1: ['A', 'E', 'I', 'O', 'U', 'L', 'N', 'R', 'S', 'T'],
2: ['D', 'G'],
3: ['B', 'C', 'M', 'P'],
4: ['F', 'H', 'V', 'W', 'Y'],
5: ['K'],
8: ['J', 'X'],
10: ['Q', 'Z']
};


function transform(oldScoreKey) {
const newScoreKey = {};
for (const [letterValue, letterArr] of Object.entries(oldScoreKey)) {
for (const letter of letterArr) {
newScoreKey[letter.toLowerCase()] = letterValue;
}
}
return newScoreKey;
}

console.log(transform(oldScoreKey));


//****************************************************
const input = require('readline-sync');

let word = (input.question("Enter a word please: "));
simpleScore = word.toLowerCase();



let score, i, sum = 0;
for (i = 0; i < word.length; i++) {
score = simpleScore[i];
sum += transform(oldScoreKey)[score];

}
console.log(sum * 1);


vowelBonus = (word) => {
const vowels = ["a", "e", "i", "o", "u"];
score = 0;
word = word.toLowerCase();
for (let letter in word) {}
vowels.forEach((value) => {
if (letter === value) {
score += 3;
} else if (letter !== value) {
score += 1;
}
});
return score;

};

对于简单分数和 [function-vowelBonus],我期望输出分数为(输入 hello)41111,但实际输出应该为

简单得分:8附加元音:9

最佳答案

使用正则表达式和数学来大大简化操作:

const vowelBonus = word=>word.length + ((word.match(/[aeiou]/ig)||"").length * 2);
vowelBonus("Hello"); // == 9

您可以重复该函数的最后一部分,将不同的奖励分配给不同的字符范围或字母列表,并将它们乘以(奖励值-1):

... + ((word.match(/[qz]/ig)||"").length * 9)

关于javascript - 如何使用函数开发评分算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57981753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com