如何将计数器变量从数字更改为字母?假设我有五个部分,每个部分都读为“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/