Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript A=0,B=1,C=2,Z=25,AA=26,AB=27..等等怎么做?_Javascript_Arrays_Math - Fatal编程技术网

Javascript A=0,B=1,C=2,Z=25,AA=26,AB=27..等等怎么做?

Javascript 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(

我从谷歌那里得到了一个工作函数,但我不能理解它。我还需要编写反向函数

有人能解释一下逻辑吗?AA如何变成26的计算和语法,如果你想

这个:当你输入27时,它给你aa

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:我写了答案:-)或者如果你提到第一个链接,我试图