猿问

js 如何获取数组内剩余区间

arr = [

    [500,1000],

    [2000,4000],

    [5000,8000],

    [8000,9000],

    [10000,12000],

    [14000,20000],

    [23000,30000],

]

已知数组arr [500,1000]代表的区间范围


1 相同的部分要合并上 例如 [5000,8000], [8000,9000] 合并成 5000-9000


2 求剩余空间 剩余区间 例如 0-500 1000-2000 4000-5000 ....等等


泛舟湖上清波郎朗
浏览 735回答 1
1回答

鸿蒙传说

    const arr = [        [500,1000],        [2000,4000],        [5000,8000],        [8000,9000],        [10000,12000],        [14000,20000],        [23000,30000],    ];        let newArr = arr.reduce((a,v)=>{        if(typeof(a[0])=="number"){          if(a[1] == v[0]) return [a[0],v[1]]          //console.log([a,v])          return [a,v]        }else{          if(a[a.length-1][1]!=v[0]) {             a.push(v)          }else{             a[a.length-1][1] = v[1]          }          return a        }        })    console.log(newArr)     let resArr = newArr.reduce((a,v)=>{      if(typeof(a[0])=="number"){        if(a[0]!=0) return [[0,a[0]],[a[1],v[0]],[v[1],v[1]]]        return [[a[1],v[0]],[v[1],v[1]]]       }else{         a[a.length-1][1]  = v[0];        if(a.length!=newArr.length) a.push([v[1],v[1]])      }      return a     })    console.log(resArr)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答