数学 - 対称差
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);チャレンジ
簡単2つの配列 arr1 と arr2 を引数として受け取る 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);
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。