ルビーでは、
"a".next [or] "a".succ # => "b"
"aa".next # => "ab"
"z".next # => "aa" # two a's after one z
Javascriptでそれを行う方法は?何かのようなもの:
incr_str("aaa") ===> aab
incr_str("zzz") ===> aaaa
ルビーでは、
"a".next [or] "a".succ # => "b"
"aa".next # => "ab"
"z".next # => "aa" # two a's after one z
Javascriptでそれを行う方法は?何かのようなもの:
incr_str("aaa") ===> aab
incr_str("zzz") ===> aaaa
との組み合わせはString.fromCharCode()
、"".charCodeAt()
かなり簡単に実装できるはずです。
var FIRST = 97,
LAST = 122;
function next (string) {
var lastChar = string[string.length - 1];
string = string.substring(0, string.length - 1);
if(lastChar.charCodeAt(0) >= LAST) {
// make last char a and append a
lastChar = String.fromCharCode(FIRST) + String.fromCharCode(FIRST);
}
else {
// Increase last char
lastChar = String.fromCharCode(lastChar.charCodeAt(0) + 1);
}
return string + lastChar;
}
非常に迅速で汚れていて、少し奇妙に動作します (zzz -> zaaa または zzza の代わりに zzaa、どの動作が最適かはわかりません) が、それを実装する方法を示しています (そして atm には時間がありません)より洗練された答えを書いてください)。