字母'z'之后的字母项目符号列表

时间:2018-11-15 15:59:26

标签: javascript angularjs

我有以下代码可生成带有字母的项目符号列表:

angular.module('testApp',[])
.controller('testController', function($scope){
        var i = 0;
    $scope.options = [];
    for ( var j=0;j<100;j++ ){
        var x = "option "+j;
        $scope.options.push(x)
    }

})
.filter('numberToAlphabet', function(){
    return function(number){
        return String.fromCharCode(number+97);
    }
})

它会生成一个列表,如:

a. option 1
b. option 2
c. option 3
...

但是问题是当字母的字母z后面时,它会显示其他字符。我希望,如果可能的话,它会在字母z之后显示类似以下的列表:

aa. option 
ab. option
ac. option
ad. option

那是可能的吗? 有帮助吗?

1 个答案:

答案 0 :(得分:2)

这实际上是一个相当简单的计算,但是有点奇怪,目的是要完全正确。像这样:

function numberToAlpha(number) {
  var r = number % 26;
  var d = Math.floor(number / 26);
  if (d == 0) {
    return String.fromCharCode(r + 97);
  }
  return numberToAlpha(d - 1) + String.fromCharCode(r + 97);
}

// some tests...
for(var i = 0; i < 256; i++) {
  console.log(i + "\t" + numberToAlpha(i))
}

我使用类似的方法来找出相应的excel列,并为其指定了数字索引,因为它们使用相同的字体方案。

这将为您提供:

0    ->   a
1    ->   b
25   ->   z
26   ->   aa
27   ->   ab
28   ->   ac
52   ->   ba
99   ->   cv
1299 ->   awz

您可以根据需要进行调整(尚不清楚是要索引0还是1索引)