表單里要提交多段時(shí)間,要檢驗(yàn)每段時(shí)間不能有互相重合的時(shí)間段
多段時(shí)間原始格式如下(時(shí)、分、秒轉(zhuǎn)化為秒,或者時(shí)間戳):
var timeArray = [ {start:"27890",off:"28790"}, {start:"25530",off:"25556"}, {start:"27000",off:"31589"}, {start:"25550",off:"25560"}, ]1、數(shù)組比較法 1、將多段時(shí)間的開(kāi)始時(shí)間和結(jié)束時(shí)間分別組成兩個(gè)數(shù)組
var minTimes = [] var maxTimes = [] timeArray.map((v)=>{ minTimes.push(v.start) //多段開(kāi)始時(shí)間的數(shù)組 minTimes = ["27890", "25530", "27000", "25550"] }) timeArray.map((v)=>{ maxTimes.push(v.off) //多段結(jié)束時(shí)間的數(shù)組 maxTimes = ["28790", "25556", "31589", "25560"] })2、將minTimes和maxTimes數(shù)組元素分別從大到小排序
相當(dāng)于時(shí)間段從小到大重排
minTimes.sort() // minTimes = ?["25530", "25550", "27000", "27890"] maxTimes.sort() // maxTimes = ?["25556", "25560", "28790", "31589"]3、比較maxTimes[index]和minTimes[index+1],即看結(jié)束時(shí)間是否永遠(yuǎn)比開(kāi)始時(shí)間小
從index=1開(kāi)始比較,如果maxTimes[index]的值比minTimes[index+1]小,說(shuō)明時(shí)間段不會(huì)重合,以此類(lèi)推比較,如果沒(méi)有出現(xiàn)maxTimes[index] > minTimes[inex+1]的情況,則沒(méi)有時(shí)間段發(fā)生重合,如果存在一次maxTimes[index] > minTimes[inex+1],則時(shí)間段重合
2、對(duì)象比較法 1、timeArray的每一項(xiàng)按開(kāi)始時(shí)間從小到大排序保證每段時(shí)間的開(kāi)始時(shí)間都比上一段時(shí)間開(kāi)始時(shí)間小
var temp for(var i = 0; i < timeArray.length - 1; i++) { for(var j = i + 1; j < timeArray.length; j++){ if(timeArray[i].start > timeArray[j].start){ temp = timeArray[i] timeArray[i] = timeArray[j] timeArray[j] = temp } } } //timeArray = [ // {start: "25530", off: "25556"}, // {start: "25550", off: "25560"}, // {start: "27000", off: "31589"}, // {start: "27890", off: "28790"} // ]2、前一段的結(jié)束時(shí)間與后一段的結(jié)束時(shí)間比較,若后一段的結(jié)束時(shí)間永遠(yuǎn)小于前一段的開(kāi)始時(shí)間,則時(shí)間算段沒(méi)有沖突
好處:能知道沖突的時(shí)間段是哪幾段
for(var i = 0;i總結(jié) 第一種方法是將時(shí)間段都拆分了,相當(dāng)于將多段時(shí)間從小到大從新排序,但是沒(méi)有很?chē)?yán)謹(jǐn)?shù)倪壿嬜C明這種方法是正確的,但暫時(shí)也想不出這種方法存在錯(cuò)誤的反例
第二種方法相當(dāng)于把時(shí)間段按照開(kāi)始時(shí)間從新排序,時(shí)間段并沒(méi)有被拆分,如果時(shí)間段不沖突,那么肯定有每一段的前一段結(jié)束時(shí)間小于當(dāng)前段的開(kāi)始時(shí)間,反之,如果當(dāng),每一段當(dāng)前段的開(kāi)始時(shí)間都小于前一段的結(jié)束時(shí)間,則時(shí)間段不沖突,是充分必要條件,所以我覺(jué)得第二種方法有較嚴(yán)謹(jǐn)?shù)倪壿嬓裕刹捎谩?/p>
以上兩種方法的前提是,保證每一段的結(jié)束時(shí)間都要比開(kāi)始時(shí)間大
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/109315.html
摘要:背景單頁(yè)面應(yīng)用使用百度統(tǒng)計(jì)需要使用和用來(lái)統(tǒng)計(jì)每個(gè)頁(yè)面的訪(fǎng)問(wèn)應(yīng)用里如果同時(shí)埋放多段百度統(tǒng)計(jì)的訪(fǎng)問(wèn)分析代碼又需要使用。但是如果單頁(yè)面應(yīng)用里又同時(shí)埋放多段百度統(tǒng)計(jì)的訪(fǎng)問(wèn)分析代碼該如何處理呢引入方式直接呈上代碼,注意事項(xiàng)都寫(xiě)在注釋里了。 背景 單頁(yè)面應(yīng)用使用百度統(tǒng)計(jì)需要使用_trackPageview和_setAutoPageview API用來(lái)統(tǒng)計(jì)每個(gè)頁(yè)面的訪(fǎng)問(wèn), 應(yīng)用里如果同時(shí)埋放多段百度...
摘要:當(dāng)我們第一次或者打開(kāi)百度,我們會(huì)發(fā)現(xiàn)加載的請(qǐng)求響應(yīng)字段如下由于是第一次或者強(qiáng)制刷新打開(kāi)的,所以瀏覽器會(huì)忽略緩存,直接向服務(wù)器發(fā)送請(qǐng)求加載資源,圖中畫(huà)框的那幾個(gè)字段是與緩存相關(guān)的。 合理利用緩存概述:本章主要討論了兩方面的內(nèi)容。1. 瀏覽器緩存機(jī)制。 2. web實(shí)踐中如何有效利用這些緩存瀏覽器緩存機(jī)制 作為web開(kāi)發(fā)人員經(jīng)常遇到的問(wèn)題之一就是我明明修復(fù)并且部署了這個(gè)BUG為什么線(xiàn)上有的...
摘要:當(dāng)我們第一次或者打開(kāi)百度,我們會(huì)發(fā)現(xiàn)加載的請(qǐng)求響應(yīng)字段如下由于是第一次或者強(qiáng)制刷新打開(kāi)的,所以瀏覽器會(huì)忽略緩存,直接向服務(wù)器發(fā)送請(qǐng)求加載資源,圖中畫(huà)框的那幾個(gè)字段是與緩存相關(guān)的。 合理利用緩存概述:本章主要討論了兩方面的內(nèi)容。1. 瀏覽器緩存機(jī)制。 2. web實(shí)踐中如何有效利用這些緩存瀏覽器緩存機(jī)制 作為web開(kāi)發(fā)人員經(jīng)常遇到的問(wèn)題之一就是我明明修復(fù)并且部署了這個(gè)BUG為什么線(xiàn)上有的...
ArcGis for JavaScript SDK 作者:BLUE日期:2019-07-09 描述:arcgis for js 開(kāi)發(fā)包,基于arcgis for js 3.9 點(diǎn)擊【這里】下載SDK 該開(kāi)發(fā)包是基于arcgis for javascript 3.9,是對(duì)原始API的一個(gè)擴(kuò)充,原始API正常使用,該SDK僅封裝了開(kāi)發(fā)過(guò)程中常用的方法,開(kāi)發(fā)包內(nèi)使用瓦片下載的方式對(duì)全國(guó)天地圖底圖進(jìn)行加...
摘要:新增的是個(gè)強(qiáng)大的功能,估計(jì)大家平時(shí)都會(huì)用到,只是頻率不高,偶爾用它合成圖片,但是如果不進(jìn)行封裝的話(huà),代碼會(huì)很亂,所以對(duì)常用的畫(huà)圖繪制文字保存功能進(jìn)行了封裝,目前還比較滿(mǎn)意,能夠快速完成繪圖任務(wù),從容應(yīng)對(duì)需求變更,只需進(jìn)行簡(jiǎn)單配置即可。 Html5新增的canvas是個(gè)強(qiáng)大的功能, 估計(jì)大家平時(shí)都會(huì)用到,只是頻率不高,偶爾用它合成圖片,但是如果不進(jìn)行封裝的話(huà),代碼會(huì)很亂,所以對(duì)canva...
閱讀 2240·2021-11-24 09:39
閱讀 1760·2021-10-11 10:59
閱讀 2662·2021-09-24 10:28
閱讀 3540·2021-09-08 09:45
閱讀 1432·2021-09-07 10:06
閱讀 1830·2019-08-30 15:53
閱讀 2301·2019-08-30 15:53
閱讀 1568·2019-08-30 15:53