鍍金池/ 問答/HTML/ js 如何獲取數(shù)組內(nèi)剩余區(qū)間

js 如何獲取數(shù)組內(nèi)剩余區(qū)間

arr = [
    [500,1000],
    [2000,4000],
    [5000,8000],
    [8000,9000],
    [10000,12000],
    [14000,20000],
    [23000,30000],
]

已知數(shù)組arr [500,1000]代表的區(qū)間范圍

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

2 求剩余空間 剩余區(qū)間 例如 0-500 1000-2000 4000-5000 ....等等

回答
編輯回答
心癌
    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)
2018年5月13日 08:59