【问题标题】:How to generate a wordlist of alphabets using javascript如何使用 javascript 生成字母表
【发布时间】:2020-11-15 19:50:33
【问题描述】:

大家好,我是新来的基本上我想在 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;
}

但对这门语言还是很陌生

【问题讨论】:

  • 哪一部分? letter = String.fromCharCode(temp + 65) + letter; 将您的 char 解码为 string ,其中 65 代表“A”(参见 ASCII 表或 Unicode),“B”(66)、“C”(67)等如下。另外,如果你附加这个函数的结果,它不会产生你的数组(例如,在“AA”之后它会给你“AB”而不是“BB”)

标签: javascript node.js arrays


【解决方案1】:

我觉得我的方法可以满足你的要求

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2012-02-24
    • 1970-01-01
    相关资源
    最近更新 更多