JavaScript | 第10章「インデックス付きコレクション」

javascrpit JavaScript
スポンサーリンク

JavaScript Indexed Collections 実践サンプル

「インデックス付きコレクション(Indexed collections)」の説明に対応した 初心者向けサンプルコード を順に紹介します。
ブラウザのコンソール(F12 → Console)や、Node.js でも試せます。

1. 配列(Array)の基本

▶️ 作成とアクセス

// 配列を作る3つの方法
const arr1 = new Array("りんご", "みかん", "ぶどう");
const arr2 = Array("A", "B", "C");
const arr3 = ["猫", "犬", "うさぎ"];  // 一番よく使う方法!

console.log(arr3[0]); // "猫"
console.log(arr3[2]); // "うさぎ"
console.log(arr3.length); // 3
JavaScript

▶️ 要素の追加と削除

const fruits = ["りんご", "みかん"];
fruits.push("ぶどう");   // 末尾に追加
fruits.unshift("バナナ"); // 先頭に追加
console.log(fruits); // ["バナナ", "りんご", "みかん", "ぶどう"]

fruits.pop();    // 最後を削除
fruits.shift();  // 最初を削除
console.log(fruits); // ["りんご", "みかん"]
JavaScript

2. 各要素をループで処理

const colors = ["赤", "青", "緑"];

for (let i = 0; i < colors.length; i++) {
  console.log(i, colors[i]);
}

// よりモダンな方法
for (const color of colors) {
  console.log("色:", color);
}

// 配列メソッドでもOK
colors.forEach((c, i) => console.log(`${i}: ${c}`));
JavaScript

3. 配列メソッドいろいろ

const nums = [1, 2, 3, 4, 5];

const doubled = nums.map(n => n * 2);
console.log(doubled); // [2, 4, 6, 8, 10]

const even = nums.filter(n => n % 2 === 0);
console.log(even); // [2, 4]

const sum = nums.reduce((total, n) => total + n, 0);
console.log(sum); // 15

console.log(nums.includes(3)); // true
console.log(nums.indexOf(4)); // 3
JavaScript

4. 疎な配列(空スロット)

const arr = [];
arr[3] = "hello";
console.log(arr.length); // 4
console.log(arr); // [ <3 empty items>, 'hello' ]

// forEach では空スロットはスキップされる
arr.forEach((v, i) => console.log(i, v)); 
// 出力: 3 'hello'
JavaScript

5. 多次元配列(配列の中に配列)

const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

console.log(matrix[0][2]); // 3
console.log(matrix[2][1]); // 8
JavaScript

6. 配列っぽいオブジェクトの例

function demo() {
  console.log(arguments); // 配列のように見えるけど配列ではない!

  // Array.from() で本当の配列に変換できる
  const args = Array.from(arguments);
  console.log(args.map(x => x * 2)); // [2, 4, 6]
}

demo(1, 2, 3);
JavaScript

7. TypedArray(型付き配列)

// 8ビット符号なし整数の配列(0〜255)
const typed = new Uint8Array([10, 20, 30]);
console.log(typed[1]); // 20

typed[2] = 255;
console.log(typed); // Uint8Array(3) [10, 20, 255]

// map や for...of も使える
for (const v of typed) {
  console.log(v);
}
JavaScript

まとめ(ざっくり復習)

種類説明よく使う場面
Array通常の配列一般的なデータ処理・順序付きリスト
TypedArray高速な数値配列WebGL、音声、画像などバイナリ処理
配列っぽいオブジェクトlengthとインデックスを持つけど配列ではないarguments, NodeList など(Array.from()で変換)

練習のポイント

  • map, filter, reduce はよく出るので慣れておく
  • 配列の「空スロット」と undefined は別物(ちょっと罠!)
  • どんなオブジェクトでも「配列っぽく」できる → Array.from()
  • メモリ効率を気にする場面では TypedArray
タイトルとURLをコピーしました