为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

泛舟湖上清波郎朗 2019-03-21 18:15:27
arr = [    [500,1000],    [2000,4000],    [5000,8000],    [8000,9000],    [10000,12000],    [14000,20000],    [23000,30000],]已知数组arr [500,1000]代表的区间范围1 相同的部分要合并上 例如 [5000,8000], [8000,9000] 合并成 5000-90002 求剩余空间 剩余区间 例如 0-500 1000-2000 4000-5000 ....等等
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

    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)


查看完整回答
反对 回复 2019-04-03
  • 1 回答
  • 0 关注
  • 734 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信