Javascript 将数字改为相应的字母

Javascript 将数字改为相应的字母,javascript,Javascript,我的问题是如何从数字中获得相应的字母 所以 这个数字肯定不会超过702 有什么方法可以帮我做到这一点吗?对于单个字符,如A、B。。。你可以很容易地得到这个号码 num=ord(x)-65其中x是对应的字符(A,B…) 对于双字母,如(AB,BG,…) num=ord(str[0]-65)*26+(str[1]-65)其中str=xy,其中x和y是对应的字符通过按26进行模运算将数字拆分为若干部分,然后使用字符串。fromCharCode将其转换为字符: 函数numToExcelColumnNam

我的问题是如何从数字中获得相应的字母

所以

这个数字肯定不会超过702


有什么方法可以帮我做到这一点吗?

对于单个字符,如A、B。。。你可以很容易地得到这个号码

num=ord(x)-65
其中x是对应的字符(A,B…)

对于双字母,如(AB,BG,…)


num=ord(str[0]-65)*26+(str[1]-65)
其中str=xy,其中x和y是对应的字符

通过按
26进行模运算将数字拆分为若干部分,然后使用
字符串。fromCharCode
将其转换为字符:

函数numToExcelColumnName(n){
如果(!n)返回0
n--//使0=>A
常数下限=n%26
常数上限=数学层(n/26)
返回(
上面的
?字符串.fromCharCode(65+上-1)
: ''
) 
+String.fromCharCode(65+以下)
}
您甚至可以通过添加循环来扩展此代码以处理702以上的数字:

function numToExcelColumnName(n){ 
  if(!n) return 0
    
  let output = ''
  while(n){
    n--
    output = String.fromCharCode(65 + n % 26) + output
    n = Math.floor(n / 26)
  }
  return output
}

我喜欢这个挑战,因此我编写了以下代码:

function NumbersToLetters(num) {
  var letArr=[];
  function numToLet(letterArray, number) {
    if(number>0) {
      var whole=Math.floor((number-1)/26);
      var reminder=(number-1)%26;
      letterArray.unshift(String.fromCharCode(65+reminder));
        numToLet(letterArray, whole);
    }
  };
  numToLetters(letArr, num);
  return letArr.length?letArr.join(""):"0";
}
使用:

NumbersToLetters(num);

你可以尝试的方法是先认真思考这个问题。祝你好运。只需702件物品,你就可以构建一个对象并将其用作hashtable@VishalDhawan,这不是每个人都在尝试的方法吗?@akaphenemom,我在寻找一个函数,而不是一个有702个键的对象。将你的数字除以26+1(以说明0)并将其降低。使用它索引到字符串
“0ABC…XYZ”
。这是你的第一个数字。然后将您的数字模化27,并再次索引到字符串中。那是你的第二个数字。
NumbersToLetters(num);