2008-10-8勉強メモ

昼間わかったことのオレオレメモです。。(記憶で書くのでこのとおりいかないかも)
ちなみに今、プロジェクト内部でのBTSの整備とかをやってます。
その過程でjQueryとかrubyを触ってみたかんじをつれづれにメモします。

IEの動作(1): 配列とかの最後の「,」

前にamachangのS6をいじったとき、IEでだけ動かなくてハマったのと同じ件にまた引っかかった。
いくつかの言語では、配列などの並びがこんな感じになってる。(インチキBNF)

 ary_literal := '[' ary_elems ']'
 ary_elems := elem ( ',' elem )* [',']

FireFoxで以下を試すと両方いけるが、IE6だとyはしくじる。

 var x = [1,2,3];
 var y = [1,2,3,];

IEの動作(2): String#split()の怪

Perl
join(':', split(/,/, '0,1,,3,4'))  #=> "0:1::3:4"
Ruby
'0,1,,3,4'.split(/,/).join(':')    #=>"0:1::3:4"
Java

JAVA長いよ。(commons langを使えばいいんだけど。)

	private static String joinArray() {
		String[] ary = "0,1,,3,4".split(",");
		StringBuilder buf = new StringBuilder(ary[0]);
		for (int i = 1; i < ary.length; i++) {
			buf.append(':');
			buf.append(ary[i]);
		}
		return buf.toString();       //=> "0:1::3:4"
	}
JavaScript(FireFox3)
'0,1,,3,4'.split(/,/).join(':')  //=> "0:1::3:4"
JScript(IE6)
'0,1,,3,4'.split(/,/).join(':')  //=> "0:1:3:4"  ← JScriptでだけ、要素2が消えている!