Menu
Coddy logo textTech

数学 - 対称差

CoddyのJavaScriptジャーニー「論理とフロー」セクションの一部 — レッスン 39/65。

2つの集合AとBの対称差は、AまたはBのいずれかに含まれるが、両方には含まれない要素を含む新しい集合です。これは、A - BとB - Aの和集合と考えることができます。

例えば:

const set1 = new Set(arr1);
const set2 = new Set(arr2);

// 対称差を作成する
const symmetricDiff = new Set([
  ...set1.difference(set2),
  ...set2.difference(set1)
]);

// 配列に戻す
const result = Array.from(symmetricDiff);
challenge icon

チャレンジ

簡単

2つの配列 arr1arr2 を引数として受け取る efficientSymmetricDifference という名前の関数を作成してください。この関数は配列を Set に変換する必要があります。2つの入力 Set の対称差である新しい Set を作成し、それを配列に変換してその配列を返してください。

チートシート

2つの集合の対称差には、どちらか一方の集合には含まれるが、両方には含まれない要素が含まれます。これは A - B と B - A の和集合です。例えば:

// 配列をセットに変換
const set1 = new Set(arr1);
const set2 = new Set(arr2);

// 対称差を作成
const symmetricDiff = new Set([
  ...set1.difference(set2),
  ...set2.difference(set1)
]);

// 配列に戻す
const result = Array.from(symmetricDiff);

自分で試してみよう

function efficientSymmetricDifference(arr1, arr2) {
    const set1 = new Set(arr1)
    const set2 = new Set(arr2)
    const symDiff = new Set();
    // ここにコードを記述してください


    return Array.from(symDiff);

}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン