0Pricing
JavaScript Academy · レッスン

クローンとマージ — spreadとObject.assign

spreadとObject.assignを使ってオブジェクトや配列をクローン・マージし、浅いコピーと上書きの順序を理解します。

「クローンとマージ — spreadとObject.assign」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン2/2です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全2レッスンが含まれています。

導入

目標: オブジェクトや配列を安全にコピーし、マージできるようになることです。

  • コピーとマージのためのスプレッド
  • Object.assign
  • 上書きの順序
  • シャローコピーの注意点
クローンとマージ — spreadとObject.assign — イラスト1

スプレッド: オブジェクトのコピー

シャローコピーには{...obj}を使用します。コピーを編集しても、元のオブジェクトのトップレベルのフィールドは変わりません。

// Shallow clone with object spread
const user = { name: "Ayla", level: 1 };
const clone = { ...user };

clone.level = 2;

console.log("Original:", user);
console.log("Clone:", clone);
クローンとマージ — spreadとObject.assign — イラスト2

Object.assign: コピー

Object.assign({}, obj)でもシャローコピーを作成できます。空のオブジェクトに代入して、元のデータを変更しないようにします。

// Shallow clone with Object.assign
const settings = { theme: "dark", compact: false };
const copy = Object.assign({}, settings);

copy.compact = true;

console.log("Settings:", settings);
console.log("Copy:", copy);
クローンとマージ — spreadとObject.assign — イラスト3

マージ: 順序が重要

マージでは順序が重要です。後のソースが先のキーを上書きします(ここではbが9になります)。

// Merge: later keys overwrite earlier ones
const base = { a: 1, b: 2 };
const extra = { b: 9, c: 3 };

const mergedSpread = { ...base, ...extra };
const mergedAssign = Object.assign({}, base, extra);

console.log("Spread merged:", mergedSpread);
console.log("Assign merged:", mergedAssign);
クローンとマージ — spreadとObject.assign — イラスト4

配列スプレッド: コピーとマージ

[...arr]で配列をコピーできます。[...a, ...b]を使えば、元の配列を変更せずに配列を結合できます。

// Arrays: clone and merge with spread
const nums = [1, 2, 3];
const cloneNums = [...nums];

const more = [4, 5];
const mergedNums = [...nums, ...more];

console.log("nums:", nums);
console.log("clone:", cloneNums);
console.log("merged:", mergedNums);
クローンとマージ — spreadとObject.assign — イラスト5

シャローコピーとディープコピー

シャローコピーでは、ネストされたオブジェクトや配列が共有されます。深い構造を扱う場合は、内側の各レベルを明示的にコピーします。

// Shallow copy caveat: nested objects are shared
const original = { user: { name: "Mina" }, active: true };
const shallow = { ...original };

// Mutate nested object
shallow.user.name = "Lena";

console.log("Original:", original);
console.log("Shallow:", shallow);
クローンとマージ — spreadとObject.assign — イラスト6

コピー方法のクイズ

クイックチェック: 変更せずにシャローコピーする方法

クローンとマージ — spreadとObject.assign — イラスト7

まとめ

まとめ: 空のオブジェクトにスプレッドまたはObject.assignを使ってコピーし、後のソースを最後に配置してマージしました。これらはシャローコピーであることを覚えておきましょう。

クローンとマージ — spreadとObject.assign — イラスト8

よくある質問

「クローンとマージ — spreadとObject.assign」レッスンは無料ですか?

はい。「クローンとマージ — spreadとObject.assign」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全2レッスンが含まれています。

「クローンとマージ — spreadとObject.assign」で何を学びますか?

spreadとObject.assignを使ってオブジェクトや配列をクローン・マージし、浅いコピーと上書きの順序を理解します。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

JavaScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/2です。

「クローンとマージ — spreadとObject.assign」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJavaScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ArrayのCRUDとIteration、Objectの基本とAccess
  2. クローンとマージ — spreadとObject.assign
← JavaScript Academyに戻る