分享一個比較好的判斷區間是否重疊的方法
栗子:比如學校排課表的課時,判斷同一天是否存在重疊;
數據舉例:A課程:開始課時第1節,結束課時第3節,B課程:開始課時第2節,結束課時第4節。
思路:比較開始課時數組的最大值和結束課時數組的最小值,若小於或等於則重疊,反之不重疊,也就是沒有交集或包含的情況。
1 const AStart = 1, AEnd = 3, BStart = 2, BEnd = 4; 2 3 // 開始課時數組 4 const maxStart = [AStart, BStart]; 5 // 結束課時數組 6 const minEnd = [AEnd, BEnd]; 7 8 if(Math.max(...maxStart)<= Math.min(...minEnd)) { 9 console.log("重疊了"); 10 }