我创建了一个函数,它接受两个参数,以便在Alphabet
变量中找到这两个参数之间的中间值。
示例:
the middle part between Q and U is S,
the middle part between R and U is ST,
the middle part between T and Z is W,
我所困惑的是,如何从Alphabet
变量的索引1开始逐个取值?
function letterMiddleValue(a, b) {
let alpha1 = Alphabet.indexOf(a);
let alpha2 = Alphabet.indexOf(b);
let center = (alpha1 + alpha2) / 2;
let letterLength;
if (center % 2 == 1) {
letterLength = 1;
} else {
letterLength = 2;
}
return Alphabet.substring(center, center + letterLength);
}
var Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
console.log(letterMiddleValue("Q", "U"));
console.log(letterMiddleValue("R", "U"));
console.log(letterMiddleValue("T", "Z"));
3条答案
按热度按时间7ajki6be1#
我认为还有一种替代的方法,那就是仅仅计算两者之间的距离,然后决定是否提取一个或两个字符。
这也可以处理两者之间没有任何内容的情况,或者
b
值在字母表中的位置较低(或者不在定义的字母表中)的情况。k5ifujac2#
中心为r & u为18.5.18.5%2为0. 5所以需要检查为0. 5的条件:
这是因为你计算中心的方式。(7 + 5)/ 2 = 6.5(6 + 10)/ 2 = 8,模运算返回的是不能被2整除的值
r7xajy2e3#
我希望这对你有帮助