תת-קבוצות ועל-קבוצות
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-JavaScript של Coddy. שיעור 40 מתוך 65.
קבוצה A היא תת־קבוצה של קבוצה B אם כל איבר של A הוא גם איבר של B. לעומת זאת, B היא קבוצת־על של A אם היא מכילה את כל האיברים של A.
שתי קבוצות שוות אם הן מכילות בדיוק את אותם איברים. לדוגמה, בואו ניצור כמה בדיקות:
const setA = new Set([1, 2, 3]);
const setB = new Set([1, 2, 3, 4, 5]);
const setC = new Set([1, 2, 3]);
const setD = new Set([6, 7, 8]);פונקציה לבדיקה אם setA היא תת־קבוצה של setB:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}פונקציה לבדיקה אם setA היא קבוצת־על של setB:
function isSuperset(setA, setB) {
return isSubset(setB, setA);
}פונקציה לבדיקה אם שתי קבוצות שוות:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}בדיקת יחס הכלה:
// האם A היא תת־קבוצה של B?
isSubset(setA, setB) // true
// האם B היא תת־קבוצה של A?
isSubset(setB, setA) // false
// האם D היא תת־קבוצה של B?
isSubset(setD, setB) // falseבדיקת קשר של קבוצת־על:
// האם B היא קבוצת־על של A?
isSuperset(setB, setA) // true
// האם A היא קבוצת־על של B?
isSuperset(setA, setB) // falseבדיקת שוויון:
// האם A שווה ל-C?
areEqual(setA, setC) // true
// האם A שווה ל-B?
areEqual(setA, setB) // false
// האם A שווה ל-D?
areEqual(setA, setD) // falseאתגר
קלצרו פונקציה בשם analyzeSetRelations שמקבלת שני מערכים כפרמטרים: arr1 ו-arr2. הפונקציה צריכה להמיר את המערכים לקבוצות ולהחזיר אובייקט עם המאפיינים הבאים:
isSubset: ערך בוליאני המציין אםset1היא תת-קבוצה שלset2isSuperset: ערך בוליאני המציין אםset1היא קבוצת-על שלset2isEqual: ערך בוליאני המציין אם ל-set1ול-set2יש בדיוק אותם איברים
נסו בעצמכם
function analyzeSetRelations(arr1, arr2) {
let set1 = new Set(arr1);
let set2 = new Set(arr2);
// השתמשו ב-.every() וב-.has() כדי לבדוק את היחסים בין הקבוצות
let isSubset = false; // TODO: בדקו אם כל איבר ב-set1 קיים ב-set2
let isSuperset = false; // TODO: בדקו אם כל איבר ב-set2 קיים ב-set1
let isEqual = false; // TODO: בדקו אם לשתי הקבוצות יש אותו מספר איברים ואם isSubset הוא true
return {
isSubset: isSubset,
isSuperset: isSuperset,
isEqual: isEqual
};
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
4JSON חלק 2
מעבר על JSONJSON מקונןשרשור אופציונלי ב-JSONהעתקה שטחית והעתקה עמוקהסיכום - חנות אופנייםסיכום - מערכת השמש10ניהול מערכת הפסטיבל
סקירת הפרויקטהוספת סרטים ואולמות2מערכים רב־ממדיים
יסודות המערכים הדו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום – מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים משונניםמערכים תלת־ממדיים ומעבר לכךתבניות נפוצות במערכים דו־ממדייםסיכום – כל מה שצריך לדעת על מערכיםתרגלו בעצמכם: קומפיילר JavaScript אונליין