1

大家好,我是新来的基本上我想在nodejs的帮助下生成一个数组,这意味着我想生成一个数组,它会继续生成这样的字母

array = ["A","B","C"..."Z","AA","BB",..."ZZ","AAA","BBB",..."ZZZ"]

谷歌搜索后,我遇到了这个

function columnToLetter(column)
{
  var temp, letter = '';
  while (column > 0)
  {
    temp = (column - 1) % 26;
    letter = String.fromCharCode(temp + 65) + letter;
    column = (column - temp - 1) / 26;
  }
  return letter;
}

但无法理解它对语言来说还是新的

4

1 回答 1

0

我认为我的方法可以满足您的要求

function columnToLetter(column) {
    var letter = [],
        newLetter = [],
        merchant = Math.floor(column / 26),
        remainder = column % 26;
    if (merchant === 0) {
        for (let i = 0; i < remainder; i++) {
            newLetter.push(String.fromCharCode(i + 65));
        }
        return newLetter;
    } else if (merchant > 0) {
        for (let j = 0; j < 26; j++) {
            let str = String.fromCharCode(j + 65);
            letter.push(str)
        }
        for (let i = 1; i <= merchant; i++) {
            newLetter.push(...letter);
            letter = letter.map(item => item + item.split('')[0])
        }
        newLetter.push(...letter.slice(0, remainder));
        return newLetter;
    }
}

console.log(columnToLetter(28));

于 2020-07-26T11:53:22.540 回答