用A,B,C,D而不是0,1,2,3,...用JavaScript

编程入门 行业动态 更新时间:2024-10-22 16:44:17
本文介绍了用A,B,C,D而不是0,1,2,3,...用JavaScript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

This is probably an unusual request, but for my script I need a function that increments by letter instead of number. For example:

这是一个数字示例:

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

本质上,我想计算字母,如Microsoft Excel,数字。因此,我不需要打印我们在0,我们在1,我们在2等,我需要打印我们在A,我们在B,我们在C等。

Essentially, I want to count with letters, like Microsoft Excel does, instead of numbers. So instead of printing "We are at 0", "We are at 1", "We are at 2", etc., I need to print "We are at A", "We are at B", "We are at C", etc.

为了模仿Excel(我可以想到的唯一例子),在达到索引25(Z)之后,我们可以移动到AA 'AB','AC'等。

To mimic Excel (the only example I can think of), after reaching index 25 (Z), we could move on to 'AA', 'AB', 'AC', etc.

所以它会工作得很好:

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

更好的是,如果有人能写一个函数,数字,即toNumber('A')= 0或toNumber('DC')= 107(我想)。

Even better if somebody can write a function that then converts a letter back into a digit, i.e. toNumber('A') = 0 or toNumber('DC') = 107 (I think).

谢谢!

推荐答案

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

Here's a simple recursive function to convert the numbers to letters.

这是一个基于的,所以1是A,26是Z,27是AA。

It's one-based, so 1 is A, 26 is Z, 27 is 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; }

这里有一个匹配函数将字符串转换回数字:

Here's a matching function to convert the strings back to numbers:

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; }

测试: jsfiddle/St6c9/

更多推荐

用A,B,C,D而不是0,1,2,3,...用JavaScript

本文发布于:2023-11-29 17:21:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1647078.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:而不是   JavaScript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!