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