【发布时间】:2018-11-11 06:46:14
【问题描述】:
我希望能够以 26 为底数,但只能使用字母表中的字母。
我可以涵盖A + 1 = B 和Z + 1 = AA 等基础知识,但我希望它适用于很长的“数字”,例如AZZEBERBZZ
目前我在 JavaScript 中有以下代码
function getNextColumn(currentColumn) {
currentColumn = currentColumn.toUpperCase();
let lastLetterCode = currentColumn.charCodeAt(currentColumn.length - 1);
if(lastLetterCode < 90) {
return currentColumn.slice(0, -1) + String.fromCharCode(lastLetterCode + 1);
} else {
return currentColumn.slice(0, -1) + "A";
}
}
但这里的问题是,当我在 AZ 时,它只会返回 AAA 而不是 BA
我该如何解决这个问题?
额外背景:
我需要函数 getNextColumn,因为我使用此函数循环从 Excel 工作表创建的对象,其中的列在 base26 中计算,但只有字母,没有数字
【问题讨论】:
-
什么是列,
getNextColumn与以 26 为底的算术有何关系? -
@CertainPerformance,我添加了一些额外的上下文
-
我会看看
Number.prototype.toString和parseInt,因为它们几乎涵盖了您需要的所有内容。
标签: javascript counting letters