配列: データの並び

map, filter, reduce でデータを自在に操る。

配列
順序付きのデータの集まり。
map
各要素を変換して新しい配列を作る。
filter
条件に合う要素だけ抽出。
reduce
配列を1つの値に集約。

配列の基礎

Array Operations
const fruits = ['apple', 'banana', 'cherry'];
// 追加・削除
fruits.push('date'); // 末尾に追加
fruits.pop(); // 末尾を削除
fruits.unshift('apricot'); // 先頭に追加
fruits.shift(); // 先頭を削除
// アクセス
fruits[0]; // 'apple'
fruits.at(-1); // 最後の要素 (ES2022)

高階関数

工場ライン

map は加工機、filter はふるい、reduce は梱包機。

Bad
// ❌ Bad: for ループで変換
const doubled = [];
for (let i = 0; i < nums.length; i++) {
doubled.push(nums[i] * 2);
}
Good
// ✅ Good: map を使う
const doubled = nums.map(n => n * 2);
Essential Methods
// map: 変換
const squares = [1, 2, 3].map(n => n ** 2); // [1, 4, 9]
// filter: 抽出
const evens = [1, 2, 3, 4].filter(n => n % 2 === 0); // [2, 4]
// reduce: 集約
const sum = [1, 2, 3].reduce((acc, n) => acc + n, 0); // 6
// find: 最初の一致
const found = users.find(u => u.id === 3);
// some / every: 条件チェック
[1, 2, 3].some(n => n > 2); // true
[1, 2, 3].every(n => n > 0); // true

合格ライン

map, filter, reduce を使える
.find() と .filter() の違いを説明できる

演習課題

課題1: map/filter
map と filter を使ってデータを変換してください。
課題2: reduce
reduce で配列を集計してください。