Ruby | JavaScript | Java | |
---|---|---|---|
型 | 可変長と同じ | 可変長と同じ | type[] |
依存性 | なし(組み込み型) | ||
生成 | new type[size] | ||
初期化 | type[] array = {values, …} | ||
一括代入 | (不可) | ||
長さ | array.length | ||
参照 | array[index] | ||
代入 | array[index] = value |
Ruby | JavaScript | CoffeeScript | Java | |
---|---|---|---|---|
マニュアル | Ruby 2.1.0 | MDN | CoffeeScript | |
型 | 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.length | list.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 + array2 | array1.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.0 | MDN | CoffeeScript |
型 | 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 | 備考 | |
---|---|---|
マニュアル | MDN | |
型 | ArrayBuffer | |
依存性 | なし(組み込み型) | |
生成 | new ArrayBuffer(length) | lengthはバイト数 |
サイズ | arraybuffer.byteLength | バイト数 |
コピー | arraybuffer.slice(begin[, end]) | 返却するバッファはコピーされた新規バッファ |
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]]) | 新規バッファを作ってコピー |