Javascript 顺时针方向循环一组数字

Javascript 顺时针方向循环一组数字,javascript,math,Javascript,Math,我有一个介于65和90之间的数字 我想把一个数字移到后面的13位,但这个数字应该从90位降到65位以下 e、 g:如果我有67,它应该变成79,但78应该下降到65,77应该下降到90 我尝试过使用if循环 var n = 67 if ((n - 13) < 65) { console.log(90 - (13 - (n - 65))) } else { console.log(n - 13) } var n=67 如果((n-13)

我有一个介于65和90之间的数字

我想把一个数字移到后面的13位,但这个数字应该从90位降到65位以下

e、 g:如果我有67,它应该变成79,但78应该下降到65,77应该下降到90

我尝试过使用if循环

var n = 67

if ((n - 13) < 65) {
  console.log(90 - (13 - (n - 65)))
}
else {
  console.log(n - 13)
}
var n=67
如果((n-13)<65){
控制台日志(90-(13-(n-65)))
}
否则{
console.log(n-13)
}

但是我如何使用算术来简化代码呢?

你可以通过减去偏移量
65
得到零的基值,加上移位值,然后使用铰刀得到0到25之间的值,然后再加上偏移量

它看起来像:

功能移位(值,移位){
返回(值-65+shift)%26+65;
}
console.log(shiftBy(67,13));//80
console.log(shiftBy(77,13));//90

console.log(shiftBy(78,13));//65
67应该是79,如果我是对的,那么我的计算是错的
from 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
     >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
      N  O  P  Q  R  S  T  U  V  W  X  Y  Z >A  B  C  D  E  F  G  H  I  J  K  L  M
 to  78 79 80 81 82 83 84 85 86 87 88 89 90 65 66 67 68 69 70 71 72 73 74 75 76 77