A = 0,B = 1,C = 2,...,Z = 25,AA = 26,AB = 27 ..如何做到这一点?

时间:2018-03-28 18:36:49

标签: javascript arrays math

我从谷歌获得了一个功能,但我无法理解。我还需要编写反向函数

有人可以解释逻辑吗?计算AA如何变为26以及语法如果你想...

这一个:当你输入27时它会给你一个

function idOf(i) {
    return (i >= 26 ? idOf((i / 26 >> 0) - 1) : '') +  'abcdefghijklmnopqrstuvwxyz'[i % 26 >> 0];
}

1 个答案:

答案 0 :(得分:1)

好的,让我们把它分解。

(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的重新映射。如果你想阅读这个运算符,请结帐MDN