javascript - 如何创建动态字母 ID 系统?
问题描述
我想创建一个超出 26 个字符限制的字母 ID 系统。
我已经创建了一个字母 id 系统,首先生成一个数字,然后使用此 id 作为索引将其转换为字母表中的字母。但我想做的是,在使用了 26 个字符后,我希望它继续使用AA
,AB
等AC
。
var alphabet = ("abcdefghijklmnopqrstuvwxyz").split("");
var dataNo = object.find('.builder-list').attr("id").slice(2);
alphabet[dataNo]
现在的问题是,当数字达到 25 时,没有要翻译的字母。所需要的是字母开始再次重复,如:X
, Y
, Z
, AA
, AB
, AC
, 等
解决方案
您可以制定一种方法将您的数字转换为字母表。与十六进制的工作方式类似,当数字超出字母范围时,您将获取用于划分字母范围的字符,并添加下一个字母字符以获得余数。
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));
推荐阅读
- flutter - 为什么这个 FAB 没有动画到扩展的?
- javascript - jQuery - 隐藏页面,使用 .animate 滚动,然后通过 .animate 的完整功能显示页面现在可以正常工作
- git - Git将补丁应用于git repo之外的特定文件
- c# - Emgu.CV.OCR 无法识别清晰的图像。我可以对图像做些什么来提高识别度?
- c# - C# 从 SharePoint 加载网站标题
- graphql - NestJS + GraphQL - @InputType 中的可选数据(代码优先)
- python - 在不使用 for 循环的情况下获取最大值 Python
- java - Java程序更新jar文件中的.class文件?
- flutter - Flutter:边框移动发光动画
- python - 在破折号中将表格显示为无花果并添加滚动条