RestとSpread — 配列とオブジェクトの定番パターン
残りの値やプロパティをまとめ、spreadでクローンやマージを行い、シンプルなパターンで隠れたミューテーションを避けます。
「RestとSpread — 配列とオブジェクトの定番パターン」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン2/2です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全2レッスンが含まれています。
導入
目標: restで余分な要素をまとめ、spreadでコピーやマージができるようになることです。
- 配列とオブジェクトのspread
- 配列のrest(先頭と末尾)
- オブジェクトのrest(一部のキーを除外)
- ミューテーションとコピー

配列spreadの基本
[...arr]で配列をコピーできます。新しい配列の中でspreadを使うと、配列を結合できます。
// Array spread creates a shallow copy and merges arrays
const a = [1, 2];
const b = [3, 4];
const clone = [...a];
const merged = [...a, ...b];
console.log("a:", a);
console.log("clone:", clone);
console.log("merged:", merged);

配列restパターン
rest要素(…tail)は、残りの要素を新しい配列にまとめます。
// Array rest collects the remaining items
const nums = [10, 20, 30, 40];
const [head, ...tail] = nums;
console.log("head:", head);
console.log("tail:", tail);

オブジェクトspreadの基本
オブジェクトのマージでは順序が重要です。後のspreadが先のキーを上書きします。
// Object spread copies and merges; later keys win
const base = { theme: "light", compact: false };
const override = { compact: true };
const copy = { ...base };
const merged = { ...base, ...override };
console.log("copy:", copy);
console.log("merged:", merged);

オブジェクトrestパターン
{ a, ...rest }を使うと、いくつかのプロパティを取り出し、残りをまとめて保持できます。
// Object rest collects remaining properties
const user = { id: 7, name: "Ayla", role: "admin" };
const { id, ...publicInfo } = user;
console.log("id:", id);
console.log("publicInfo:", publicInfo);

コピーによるミューテーションの回避
値を変更するときは新しいオブジェクトを作成します。共有データを変更するよりも、意図が明確で安全です。
// Copy instead of mutating original data
const settings = { sound: true, volume: 5 };
// Mutating version (avoid in shared state)
// settings.volume = 6;
// Non-mutating: create an updated copy
const updated = { ...settings, volume: 6 };
console.log("settings:", settings);
console.log("updated:", updated);

オブジェクトrestのクイズ
クイックチェック: オブジェクトのrest

まとめ
まとめ: spreadで配列やオブジェクトをコピー・マージし、restで残りの要素をまとめました。変更を明確に保つため、ミューテーションよりもコピーを優先します。

よくある質問
「RestとSpread — 配列とオブジェクトの定番パターン」レッスンは無料ですか?
はい。「RestとSpread — 配列とオブジェクトの定番パターン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全2レッスンが含まれています。
「RestとSpread — 配列とオブジェクトの定番パターン」で何を学びますか?
残りの値やプロパティをまとめ、spreadでクローンやマージを行い、シンプルなパターンで隠れたミューテーションを避けます。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
JavaScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/2です。
「RestとSpread — 配列とオブジェクトの定番パターン」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJavaScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 配列・オブジェクトの分割代入の基礎
- RestとSpread — 配列とオブジェクトの定番パターン