RubyとJavaのArrayを比較してみる

Array

同じように使える

join, pop, push, shift, map

微妙に違う
Ruby JavaScript
リテラル [1,2,3] [,,3] 抜けたところはnullが入る
concat 副作用あり, 引数はArrayのみ 副作用なし, 引数に要素を並べてもOK
reverse 非破壊的 破壊的
slice 引数は(pos[,len]), (start..last) 引数は(pos,len)のみ
sort 非破壊的 破壊的
Rubyのみ

unshift…先頭に挿入
あとEnumerableのぶん。
find, select, sort_by, any? は欲しいなぁ。

名前&記法違い

JavaScriptで、
splice(index,count_to_remove,addelement1,addelement2,...)…
index番目からcount_to_remove要素をaddelement1〜Nで置き換える。

a=[1,2,3,4,5]; a.splice(1,3,"a","b"); a
// 1,a,b,5

同じものはRubyで、

a = [1,2,3,4,5]; a[1..3] = %w(a b); a
#=> [1, "a", "b", 5]


参考:
プログラミング言語 Ruby リファレンスマニュアル
http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide:Predefined_Core_Objects:Array_Object