お題:文字列を先頭から見て同じところまで除去 - No Programming, No Life

JS でやってみました。
linq.js を使いたかったのですが使いどころがパッと思い浮かびませんでした…

var hoge = function (var_args) {
var i,
j,
diff = false,
args = [],
result = [];

for (i = 0; i < arguments.length; i++) {
args[i] = arguments[i];
}

for (i = 0; i < args[0].length; i++) {
for (j = 1; j < args.length; j++) {
if (args[0].charAt(i) !== args[j].charAt(i)) {
diff = true;
break;
}
}
if (diff) {
break;
}
}

for (j = 0; j < args.length; j++) {
result[j] = args[j].slice(i);
}
return result;
};

// お題
console.log(hoge('abcdef', 'abc123'));
console.log(hoge('あいうえお', 'あいさんさん', 'あいどる'));
console.log(hoge('12345', '67890', '12abc'));


うーん、うつくしくないです( 'A`)

P.S.

それにしても出題者の fumokmm さんの解答例すごいです。
Groovy のコードって初めて(!)見ますけれども、これは Java で書くのが嫌になるくらいの強力さのように思えます。
つか、がんがんメソッドチェーン使っていくスタイルの言語なのですかね。
今、自分の周りでは本当に Groovy が熱いのですが(Clojure …)、これは熱くもなりますよねー!

P.S.

文字列を先頭から見て同じところまで除去 #js - c4se記:さっちゃんですよ☆

ブログを書いてトラックバックを打とうとしたら、もう JS で仕上げている方がいらっしゃいました。
同じ JS ということで「どんなコードを書いているんだろう(〃▽〃)」と気になって見に行ったら、コード似すぎでした…
もうね、自分のがパクリとか言われても仕方ないレベルです。いやマジで。
お題もシンプルですし、JS だとこうなってしまうのかもしれませんが。
とりあえず、せっかく書いたのでブログに書いてみました。