目次

プログラミング言語チートシート

固定長配列

Ruby JavaScript Java
可変長と同じ可変長と同じtype[]
依存性 なし(組み込み型)
生成 new type[size]
初期化 type[] array = {values, …}
一括代入(不可)
長さ array.length
参照 array[index]
代入 array[index] = value

可変長配列

Ruby JavaScript CoffeeScript Java
マニュアル Ruby 2.1.0MDNCoffeeScript
Array Array List<type>
依存性 なし(組み込み型) なし(組み込み型) import java.util.*
生成 Array.new([size = 0][, value = 0])
[item1, item2, …]
new Array([size = 0])
new Array(item1, item2, …)
[item1, item2, …]
new ArrayList<type>()
要素数 array.length
array.size
array.lengthlist.size()
要素参照 array[index] list.get(index)
要素代入 array[index] = value list.set(index, value)
末尾に要素を追加 array.push(value)
array << value
array.push(value)list.add(value)
先頭に要素を挿入 array.unshift(value) list.add(0, value)
末尾から要素を削除array.pop array.pop() list.remove(list.size() - 1)
先頭から要素を削除array.shift array.shift() list.remove(0)
別の配列と連結 array1 + array2array1.concat(array2)
すべて削除 array.clear なし list.clear()
要素を指定して削除array.delete(value)
(合致する要素全てを削除)
なし
(indexOfと「添字を指定して削除」で代用)
添字を指定して削除array.delete_at(index)array.splice(index, 1)
各要素について実行array.each {|value| … }なし
(「各添字について実行」で代用)
for value in array
各添字について実行array.each_index {|index| …}for (index = 0;
index < array.length;
++index)
{ … }
なし
(「各添字と要素について実行」で代用)
各添字と要素について実行なし
(「各添字について実行」で代用)
なし
(「各添字について実行」で代用)
for value, index in array

連想配列

Ruby JavaScript CoffeeScript
マニュアル Ruby 2.1.0MDNCoffeeScript
Hash Object
依存性 なし(組み込み型) なし(組み込み型)
生成 Hash.new
{key1 => value1, key2 => value2, …}
new Object()
{key1: value1, key2: value2, …}
要素数 hash.length
hash.size
Object.keys(object).length
要素参照 hash[key]
hash.fetch(key)
object["key"]
object.key
要素代入 hash[key] = value
hash.store(key, value)
object["key"] = value
object.key = value
各キーについて実行hash.each_key {|key| … }for (key in object) { … }for key of object
各要素について実行hash.each_value {|value| … }なし
(「各キーについて実行」で代用)
なし
(「各キーと要素について実行」で代用)
各キーと要素について実行hash.each {|key, value| … }
hash.each_pair {|key, value| … }
なし
(「各キーについて実行」で代用)
for key, value of object
キーの配列を取得hash.keys なし(以下のように一度走査するしかない)
var r = [];
for (k in object) { r.push(k); }
なし(JSよりかは完結に書ける)
(k for k, v of object)
※演算子の優先順位から、括弧が重要

バイナリデータバッファ(JavaScript固有)

JavaScript 備考
マニュアルMDN
ArrayBuffer
依存性 なし(組み込み型)
生成 new ArrayBuffer(length) lengthはバイト数
サイズ arraybuffer.byteLength バイト数
コピー arraybuffer.slice(begin[, end])返却するバッファはコピーされた新規バッファ

バイナリデータビュー(JavaScript固有)

JavaScript 備考
TypedArray (Uint8Array/etc.)
マニュアルMDN
依存性 なし(組み込み型)
生成 new TypedArray(length)
new TypedArray(typedarray)
new TypedArray(arraybuffer[, byteoffset[, length]])
参照バッファtypedarray.buffer
サイズ typedarray.byteLength バイト数
typedarray.length 要素数
オフセットtypedarray.byteOffset バイト数
部分配列取得typedarray.subarray([begin[, end]])バッファは共有するので注意
typedarray.slice([begin[, end]])新規バッファを作ってコピー