如何将计数器变量从数字更改为字母?假设我有五个部分,每个部分都读为“Section A”,“Section B”,依此类推...并且我想更改它们的href属性,因为它们是从“section1”映射到“sectionA”,“section2”映射到“sectionB”等?

var sectionNumberLink = 0;
var sectionLetters = assessmentSections.map(function (section) {
    sectionNumberLink++;
    return  '<div class="assess-sec-link">' + '<a href="section' +
        sectionNumberLink + '">' + "Section" + '</a>' + '</div>';
}).join('');

最佳答案

您可以使用 String.fromCharCode() String.prototype.charCodeAt() 将数字转换为字母

例:
警告:如果您有26个以上的部分,则此操作将失败

function toLetter(number) {
  let base = 'A'.charCodeAt(0);
  return String.fromCharCode(base - 1 + number);
}

console.log(toLetter(1)); // A
console.log(toLetter(2)); // B


如果您需要超过26个部分,则需要更多代码:

function toLetter(num) {
  let a = "A".charCodeAt(0);
  let result = '';
  for (let base = 1, mod = 26; (num -= base) >= 0;base = mod, mod *= 26) {
    result = String.fromCharCode(num % mod / base + a) + result;
  }
  return result;
}

console.log(toLetter(1)); // A
console.log(toLetter(27)); // AA


在您的代码段中,您可以像这样使用它:
let sectionLetters = assessmentSections.map((section, idx) => {
    return  `
      <div class="assess-sec-link">
        <a href="section${toLetter(idx + 1)}">Section</a>
      </div>`;
}).join('');

关于javascript - 如何将计数器变量从数字更改为字母?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57696447/

10-09 21:45