Javascript 输入一个英文单词,返回一个整数
我在一家大学广播电台工作,我们想找到一种方法,用数字来记录我们的音乐。我想把艺术家、发行名称和年份计算成9位数 我已经把一些东西编码好了 函数双射(字母)将读取单个字符,引用var alpha=[“0”、“1”、“2”、“9”、“a”、“b”、“x”、“y”、“z],并返回所提供字符的索引。例如,双射(c)=13Javascript 输入一个英文单词,返回一个整数,javascript,Javascript,我在一家大学广播电台工作,我们想找到一种方法,用数字来记录我们的音乐。我想把艺术家、发行名称和年份计算成9位数 我已经把一些东西编码好了 函数双射(字母)将读取单个字符,引用var alpha=[“0”、“1”、“2”、“9”、“a”、“b”、“x”、“y”、“z],并返回所提供字符的索引。例如,双射(c)=13 function bijection(character){ var alpha = ["0","1","2","3","4","5","6","7","8","9","a",
function bijection(character){
var alpha = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var position = alpha.indexOf(character) + 1;
return position;
}
函数easyread(string)将获取一个字符串,并删除空格。因此,easyread(“双门影院俱乐部”)返回双门影院俱乐部
function easyread(noun){
var out = noun.split(' ').join('');
return out;
}
函数标签(number1、number2、number3)将取三个数字,计算每个mod 1000,并将它们组合成一个9位整数。例如,标签(100110021003)返回100200300
function label(sum1,sum2,year){
var label = 1000000*(sum1%1000) + 1000*(sum2%1000) + year%1000;
return label;
现在我想写一个名为sigma的函数,它将获取一个没有空格的字符串,将其逐个字符分解,然后将它们的索引相加。因此,我将通过easyread运行一个字符串,将其插入sigma,然后sigma将在对字符串中每个字符的迭代中引用双射,并进行一些数学运算以返回每个双射(字符)的总和。我会选择西格玛输出的任何东西,并将其作为标签的输入。不过,我不知道如何实现西格玛。有什么帮助吗
更新:
这就是我目前得到的
function sigma(noun){
var domain = easyread(noun) //removes spaces from input noun
for(let n = 0; n<domain.length; n++) {
//start with n = 0, and stop when n is incrementally larger than the length of our spaces-removed string.
let iterative = domain[n]; //not sure what this is bijection(iterative);
//tells the computer to calculate the bijection of each character
} //return sum of all bijection(iterative), somehow? }
函数sigma(名词){
var domain=easyread(noun)//从输入名词中删除空格
对于(让n=0;n鉴于您对Javascript
非常陌生,我将尽最大努力避免使用复杂的api
基本上,要去掉所有空格,您必须执行一个字符串。替换(…)
。其中API采用正则表达式模式。因此,您需要执行类似/\s/g
的操作来表示我想“查找字符串中的所有空格”第二个参数将是'
,也就是说将其替换为“”
在此之后,您将希望循环遍历无空格字符串值中的每个字符,只需对循环执行一个简单的for
,并在每个循环上调用bijection()
函数
考虑下面的代码
示例:
“严格使用”;
函数双射(char){
//假设这是你的双射
log(“将字符:“+char+”转换为值…”);
返回10;//假设每个字符的值为10。
}
let test=“可能有空格的一个”;
设nospace=test.replace(/\s/g,“”);
设totalValue=0;
for(设n=0;n 控制台。日志(“总值=>”+总值);<代码>欢迎。如果你显示了你放在一起的代码,这将是有帮助的。你可能也想阅读使用来把字符串分割成一个数组,把字母转换成数字并将它们相加。在计算之前,从歌曲标题开始,例如,“爱的力量”和“爱的力量”将得到相同的结果。希望这有帮助。如果您想进一步讨论,请告诉我。他已经编写了.replace()
函数。它名为easyread()
。所以代码应该是让nospace=easyread(test)
我不太理解for循环中的条件,但是其余的是可以管理的。我们现在如何从这个循环中获得和双射(“t”)+双射(“w”)+…+双射(“u”)+双射(“b”)呢?我像这样摆弄它函数sigma(名词){var domain=easyread(noon)//从输入名词中删除空格for(设n=0;循环可以读为“对于nospace
(或您的代码域
)中的每个字符)。调用双射()
获取该字符的值。然后使用双射返回的结果将其添加到变量totalValue
。