gpt4 book ai didi

javascript - 使用 A、B、C、D 而不是 0、1、2、3 ...... 使用 JavaScript 进行计数

转载 作者:可可西里 更新时间:2023-11-01 02:52:02 28 4
gpt4 key购买 nike

这可能是一个不寻常的请求,但对于我的脚本,我需要一个按字母而不是数字递增的函数。例如:

这是一个数字示例:

var i = 0;
while(condition){
window.write('We are at '+i);
++i;
}

基本上,我想用字母而不是数字来计数,就像 Microsoft Excel 那样。因此,我不需要打印“我们在 0”、“我们在 1”、“我们在 2”等,而是打印“我们在 A”、“我们在 B”、“我们在C”等

为了模仿 Excel(我能想到的唯一示例),在达到索引 25 (Z) 后,我们可以继续使用“AA”、“AB”、“AC”等。

所以它会像这样工作得很好:

var i = 0;
while(condition){
window.write('We are at '+toLetter(i));
++i;
}

如果有人可以编写一个函数,然后将字母转换回数字,即 toNumber('A') = 0 或 toNumber('DC') = 107(我认为),那就更好了。

谢谢!

最佳答案

这是一个将数字转换为字母的简单递归函数。

它是从一开始的,所以 1 是 A,26​​ 是 Z,27 是 AA。

function toLetters(num) {
"use strict";
var mod = num % 26,
pow = num / 26 | 0,
out = mod ? String.fromCharCode(64 + mod) : (--pow, 'Z');
return pow ? toLetters(pow) + out : out;
}

这是一个将字符串转换回数字的匹配函数:

function fromLetters(str) {
"use strict";
var out = 0, len = str.length, pos = len;
while (--pos > -1) {
out += (str.charCodeAt(pos) - 64) * Math.pow(26, len - 1 - pos);
}
return out;
}

测试:http://jsfiddle.net/St6c9/

关于javascript - 使用 A、B、C、D 而不是 0、1、2、3 ...... 使用 JavaScript 进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11089399/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com