首页 > 解决方案 > 如何创建动态字母 ID 系统?

问题描述

我想创建一个超出 26 个字符限制的字母 ID 系统。

我已经创建了一个字母 id 系统,首先生成一个数字,然后使用此 id 作为索引将其转换为字母表中的字母。但我想做的是,在使用了 26 个字符后,我希望它继续使用AA,ABAC

var alphabet = ("abcdefghijklmnopqrstuvwxyz").split("");

var dataNo = object.find('.builder-list').attr("id").slice(2);
alphabet[dataNo]

现在的问题是,当数字达到 25 时,没有要翻译的字母。所需要的是字母开始再次重复,如:X, Y, Z, AA, AB, AC, 等

标签: javascriptjquerywordpress

解决方案


您可以制定一种方法将您的数字转换为字母表。与十六进制的工作方式类似,当数字超出字母范围时,您将获取用于划分字母范围的字符,并添加下一个字母字符以获得余数。

function convertNumberToId (number) {
  var alphabet = 'abcdefghijklmnopqrstuvwxyz'.toUpperCase().split('');
  
  if (number < alphabet.length) {
    return alphabet[number];
  } else {
    return (
      convertNumberToId(Math.floor(number / alphabet.length) - 1)
      +
      convertNumberToId(number % alphabet.length)
    );
  }
}

console.log(convertNumberToId(25));
console.log(convertNumberToId(26));
console.log(convertNumberToId(280));


推荐阅读