האם מערך הוא תת מערך?

שאלה נפוצה בראיונות עבודה של תוכנה היא ״האם מערך הוא תת מערך?״. למה הכוונה? בואו נסתכל בדוגמא:

הינתן מערך א׳ [1, 2, 4, 5, 6, 7, 5, 5, 7] תת מערך של מערך א׳ הוא כל מערך שנמצא בשלמות בתוך מערך א׳ לפי אותו הסדר. למשל [1, 2 ,4] הוא תת מערך, כך גם [5] וגם [4, 5, 6, 7, 5]. המערך [2, 1] אינו תת מערך של מערך א׳ כי הסדר שונה.

דוגמא בקוד:

const arr = [1, 2, 4, 5, 6, 7, 5, 5, 7];

isSubArray(arr, [1, 2, 4]); // true
isSubArray(arr, [5]); // true
isSubArray(arr, [4, 5, 6, 7, 5]); // true

isSubArray(arr, [1, 2, 3]); // false
isSubArray(arr, [9]); // false
isSubArray(arr, [1, 2, 4, 5, 6, 7, 5, 5, 7, 6]); // false