では「偶数と奇数を分けて、2つの配列を返す関数」を一緒に作ってみましょう。
これは「複数の結果をまとめて返す」練習になります。
目標
- 配列を順番に調べる
- 偶数は
evens配列に、奇数はodds配列に入れる - 最後に
{ evens, odds }の形で返す
✅ 模範解答(for文バージョン)
function splitEvenOdd(arr) {
const evens = [];
const odds = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 === 0) {
evens.push(arr[i]);
} else {
odds.push(arr[i]);
}
}
return { evens, odds };
}
// 実行例
console.log(splitEvenOdd([1, 2, 3, 4, 5, 6]));
// { evens: [2, 4, 6], odds: [1, 3, 5] }
JavaScript✅ 模範解答(for…ofバージョン)
function splitEvenOdd(arr) {
const evens = [];
const odds = [];
for (const num of arr) {
if (num % 2 === 0) {
evens.push(num);
} else {
odds.push(num);
}
}
return { evens, odds };
}
console.log(splitEvenOdd([10, 11, 12, 13]));
// { evens: [10, 12], odds: [11, 13] }
JavaScript✅ 模範解答(forEachバージョン)
function splitEvenOdd(arr) {
const evens = [];
const odds = [];
arr.forEach(num => {
if (num % 2 === 0) {
evens.push(num);
} else {
odds.push(num);
}
});
return { evens, odds };
}
console.log(splitEvenOdd([7, 8, 9, 10]));
// { evens: [8, 10], odds: [7, 9] }
JavaScript💡 解説
- for文 → インデックスを使えるので「何番目が偶数か」も分かる。
- for…of文 → 値だけ扱いたいときにシンプルで読みやすい。
- forEach → 全部処理するのに便利。途中で止める必要がないので相性が良い。
🔥 発展練習
- 偶数と奇数ではなく「3の倍数」と「それ以外」に分ける
- 文字列の配列を「長さが偶数の文字列」と「奇数の文字列」に分ける
