[true, true, true, true, true, true, true, true, false,true, false, false, false, false, false, false, false, false, true,true, true, true, true,true].reduce((res,b,i,arr) => { var pre = res[res.length-1]; //為true時判斷是否存在上一個區間值,無則push一個區間 if(b && (!pre || pre.length == 2)) { res.push([i]) } //為false時判斷上一個區間是否閉合,無則閉合 //當遍歷到最后一個時判斷是否上一個閉合,無則閉合 if((!b || i==arr.length-1) && pre?.length==1) { // false時下標為當前減1 pre.push(i + ( b ? 0 : -1 ) ) } return res;},[])function rangeOfTrue(list,res=[],i=0) { var start = list.indexOf(true,i); if(start == -1) return res; var end = list.indexOf(