2 回答

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
var source = [
{
min: {include: false, value: 10},
max: {include: true, value: 20}
},
...
]
類似這樣的數(shù)據(jù)結(jié)構(gòu),再判斷一下是否重復(fù)就行吧。
挨個(gè)從source中進(jìn)行判斷,相當(dāng)于判斷兩條線段是否重復(fù)了。比如兩條線段A、B。如果A.max <(=) B.min || A.min >(=) B.max。則這兩條線就是不重復(fù)的。

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
看了一下是不是可以用一個(gè)二維數(shù)組解決:
(function(arr){
for(let i=0;i<arr.length;i++){
if(arr[i][0] > arr[i][1]) return false;
if(arr[i+1] && arr[i][1] > arr[i+1][0]) return false;
}
return true;
})([[1,2],[3,4],[7,9]])
這個(gè)函數(shù)執(zhí)行結(jié)果就是根據(jù)是否有重復(fù)的區(qū)間,如果有就返回false如果沒有就返回ture。
至于包含不包含,就在于你如何初始化這個(gè)二維數(shù)組了。
添加回答
舉報(bào)