配列は「値を順番に並べて入れる『箱の列』」だと考えると分かりやすいです。ここでは初心者向けに、基本からよく使う操作、具体例、練習問題(解答付き)まで分かりやすくまとめます。
1. 配列って何?(イメージ)
- 配列 = 「ロッカーが並んだ棚」。
各ロッカーには 0, 1, 2… という番号(インデックス)が振ってあり、そこに値を入れます。 - 例:3人分の点数を一つにまとめるとき
let scores = [85, 78, 92];
JavaScriptこれで scores[0] が 85、scores[1] が 78、scores[2] が 92 です。
2. 宣言のしかた(よく使うパターン)
// リテラル(よく使う)
let a = [1, 2, 3];
// 空の配列を作る
let empty = [];
// new を使う(あまり必要ない)
let b = new Array(10); // 長さ10の空配列(中身は undefined)
let c = new Array(1, 2, 3); // [1,2,3]
JavaScript3. 要素にアクセス(読み書き)
let names = ['Alice', 'Bob', 'Charlie'];
console.log(names[0]); // 'Alice'
names[1] = 'Bobby'; // 2番目を更新
console.log(names[1]); // 'Bobby'
JavaScript- インデックスは 0から始まる(重要!)。
- 存在しないインデックスを読むと
undefinedが返ります。
4. 長さ(要素数)の取得
let arr = [10, 20, 30, 40];
console.log(arr.length); // 4
JavaScriptlength を使えばループで安全に回せます(最後まで行ってしまう心配が減る)。
5. よく使う基本メソッド
push(value): 末尾に追加(ロッカー棚の一番右に入れる)pop(): 末尾を取り出す(右から1つ取り出す)unshift(value): 先頭に追加(左に詰める)shift(): 先頭を取り出すindexOf(value): 値の最初の位置(インデックス)を返す(無ければ -1)includes(value): 含まれるかどうか(true/false)slice(start, end): 部分配列を取り出す(非破壊)。startからend-1までsplice(start, deleteCount, ...items): 要素の削除・挿入(破壊)concat(other): 配列どうしを結合して新しい配列を作る(非破壊)join(sep): 配列を文字列にする(区切り文字を指定)sort(): 配列を並べ替える(文字列としての並びになる点に注意)reverse(): 逆順にする(破壊的)map(fn): 各要素を変換して新しい配列を作るfilter(fn): 条件に合う要素だけを集めて新しい配列を作るreduce(fn, initial): 配列を畳んでひとつの値にする(合計など)
6. 例題:点数の合計と平均(forループ版)
let scores = [85, 78, 92, 64, 100];
let sum = 0;
for (let i = 0; i < scores.length; i++) {
sum += scores[i];
}
console.log('合計:', sum); // 合計: 419
console.log('平均:', sum / scores.length); // 平均: 83.8
JavaScript計算は小数になることがあるので必要なら Math.round() や toFixed() で整えます。
7. 同じ処理を短く:for…of や forEach
// for...of
let sum2 = 0;
for (let v of scores) {
sum2 += v;
}
// forEach
let sum3 = 0;
scores.forEach(function(v) { sum3 += v; });
JavaScript8. map/filter/reduce の便利例
- 各点数を 1.1 倍(例:補正点)して新配列を作る(
map)
let boosted = scores.map(v => Math.min(100, Math.round(v * 1.1))); // 上限100に丸め
// boosted は [94, 86, 101→100, 70, 110→100] → [94,86,100,70,100]
JavaScript- 60点以上だけ抽出(合格者のみ)(
filter)
let pass = scores.filter(v => v >= 60); // [85,78,92,64,100]
JavaScript- 合計を
reduceで一行で(応用)
let sum4 = scores.reduce((acc, v) => acc + v, 0);
JavaScript9. 注意点:sort() の落とし穴
sort() はデフォルトで 文字列として比較します。
let nums = [1, 30, 4, 21, 100000];
nums.sort();
console.log(nums); // [1, 100000, 21, 30, 4] ← 期待と違う
JavaScript数値で並べたい場合は比較関数を渡します:
nums.sort((a,b) => a - b);
console.log(nums); // [1, 4, 21, 30, 100000]
JavaScript10. 例題:重複を取り除く(Set を使う)
let arr = [1,2,2,3,4,3,5];
let unique = Array.from(new Set(arr)); // [1,2,3,4,5]
JavaScript初心者でも知っておくと便利なワザです。
11. 実践的な小さな例 — 名前リストを整形して表示
let names = [' alice ', 'BOB', 'Charlie '];
// 先頭と末尾の空白を削り、先頭だけ大文字にして表示
let clean = names.map(n => {
let s = n.trim().toLowerCase();
return s.charAt(0).toUpperCase() + s.slice(1);
});
console.log(clean.join(', ')); // "Alice, Bob, Charlie"
JavaScript12. 練習問題(手を動かそう) — 解答付き
問題1
配列 [2, 5, 3, 8, 1] の合計を求めよ(for で)。
解答例
let a = [2,5,3,8,1];
let s = 0;
for (let i=0; i<a.length; i++) s += a[i];
console.log(s); // 19
JavaScript問題2
配列 [12, 7, 9, 20, 3] から 10以上 の要素だけを抽出して新しい配列を作れ(filter を使う)。
解答例
let arr = [12,7,9,20,3];
let over10 = arr.filter(x => x >= 10);
console.log(over10); // [12, 20]
JavaScript問題3
文字列配列 ['red','blue','green'] を '-' で連結して 'red-blue-green' を作れ(join)。
解答
let colors = ['red','blue','green'];
console.log(colors.join('-')); // 'red-blue-green'
JavaScript問題4
配列 [3,1,4,1,5,9,2] を昇順にソートせよ(数値として)。
解答
let a = [3,1,4,1,5,9,2];
a.sort((x,y) => x - y);
console.log(a); // [1,1,2,3,4,5,9]
JavaScript問題5(少し応用)
配列 [10, 20, 30] の平均を reduce を使って求めよ。
解答
let a = [10,20,30];
let sum = a.reduce((acc, v) => acc + v, 0);
let avg = sum / a.length;
console.log(avg); // 20
JavaScript13. まとめ(初心者がまず覚えるべきポイント)
- 配列は「0始まりのインデックス」で値を順番に格納する。
lengthは要素数。ループで使うと便利。push/pop/shift/unshiftは要素の追加/削除に使う。map/filter/reduceは配列処理を短く・読みやすくする強力な道具。sort()はデフォルトで文字列比較。数値は比較関数を渡す。

