JavaScript で、数値から短い一意の文字 ID を生成する最良の方法は何でしょうか。たとえば、1 は A、2 は B、27 は AA になります。
1 に答える
5
数値を Base26 アルファ エンコードします。 これにより、Excel スプレッドシートと同様に、数値からテキスト表現に変換されます。
適切なアルゴリズムのコード表現については、こちらを参照してください: http://frugalcoder.us/post/2011/02/24/Convert-an-integer-to-a-base26-alpha-string.aspx
function intToAlpha26String(input) {
input = (+input).toString(26);
var ret = [];
while (input.length) {
var a = input.charCodeAt(input.length-1);
if (input.length > 1)
input = (parseInt(input.substr(0, input.length - 1), 26) - 1).toString(26);
else
input = "";
if (a >= 48/*'0'*/ && a <= 57 /*'9'*/)
ret.unshift(String.fromCharCode(a + 49)); //raise to += 'a'
else
ret.unshift(String.fromCharCode(a + 10)); //raise + 10 (make room for 0-9)
}
return ret.join('').toUpperCase();
}
于 2013-06-12T19:00:32.653 に答える