3
Javascript中有没有一种方法,我可以想出一系列字符串去A-Z,到达Z时,从AA-ZZ开始,然后到AAA-AMJ?因为我试图想到任何不会让我循环循环的循环来做到这一点。在这一点上,我被卡住并开放了想法。创建类似于电子表格的列索引
Javascript中有没有一种方法,我可以想出一系列字符串去A-Z,到达Z时,从AA-ZZ开始,然后到AAA-AMJ?因为我试图想到任何不会让我循环循环的循环来做到这一点。在这一点上,我被卡住并开放了想法。创建类似于电子表格的列索引
我不得不在php中这样做一次;也就是说,我需要一个函数,它将采用数字列索引作为输入,并将excel列名称吐出。有PHP文档,通过使用的26权力的模可以容易地转化为JS做它在一个聪明的功能:
function num2alpha($n) {
let $r = '',$i , $n;
for ($i = 1; $n >= 0 && $i < 10; $i++) {
$r = String.fromCharCode(65 + ($n % Math.pow(26, $i)/Math.pow(26, $i - 1))) + $r;
$n -= Math.pow(26, $i);
}
return $r;
}
用法:
num2alpha(0); //A
num2alpha(27); //AB
num2alpha(1023); //AMJ
所以...
let columns=[];
for(let i=0; i<=1023; i++) {
columns.push(num2alpha(i));
}
//["A","B","C",..."AA","AB",..."AMJ"]
or tersely
let columns=[...Array(1024).keys()].map(num2alpha)
生成一次,然后把它放在一个文本文件也许? –
@nathanhayfield这是一个严肃的建议吗? –
@TomášZato听起来会更快,认为它是一个缓存 –