Javascript A=0,B=1,C=2,Z=25,AA=26,AB=27..等等怎么做?
我从谷歌那里得到了一个工作函数,但我不能理解它。我还需要编写反向函数 有人能解释一下逻辑吗?AA如何变成26的计算和语法,如果你想 这个:当你输入27时,它给你aaJavascript A=0,B=1,C=2,Z=25,AA=26,AB=27..等等怎么做?,javascript,arrays,math,Javascript,Arrays,Math,我从谷歌那里得到了一个工作函数,但我不能理解它。我还需要编写反向函数 有人能解释一下逻辑吗?AA如何变成26的计算和语法,如果你想 这个:当你输入27时,它给你aa function idOf(i) { return (i >= 26 ? idOf((i / 26 >> 0) - 1) : '') + 'abcdefghijklmnopqrstuvwxyz'[i % 26 >> 0]; } 好的,让我们把它分解一下 (i >= 26 ? idOf(
function idOf(i) {
return (i >= 26 ? idOf((i / 26 >> 0) - 1) : '') + 'abcdefghijklmnopqrstuvwxyz'[i % 26 >> 0];
}
好的,让我们把它分解一下
(i >= 26 ? idOf((i / 26 >> 0) - 1) : '')
如果i大于25,函数将递归地调用自身。如果小于26,则返回空字符串
“?”是一个三元运算符。你可以把它翻译成
if (i= 26) { return idOf((i / 26 >> 0) - 1) } else { return '' }
下一节:
+ 'abcdefghijklmnopqrstuvwxyz'[i % 26 >> 0]
这将获取字符串x位置的字母,x为(i%26>>0),并将其添加到上一部分的字符串中
i%26>>0似乎刚刚获得i%26的重拍。如果您想了解有关此操作员的信息,请签出,您可能需要询问。我想这就是代码的来源,对吧?递归似乎非常简单。你不了解它的哪一部分?你也能用笔和纸一步一步地评估idOf(27)?试试看。是的,我应该问问原作者。但我担心这篇文章是7年前写的……有人能至少解释一下语法吗?好像我不明白这是什么?和>>和:在返回语句中。@messerbill Simple:我写了答案:-)或者如果你提到第一个链接,我试图