js 获取多个二维数组的公共区间

该篇文章介绍了如何使用JavaScript编写一个名为`getCommonInterval`的函数,用于找出多个二维数组中的公共区间。函数通过嵌套循环对比每个数组的元素,找出所有共享的子区间并返回结果。
摘要由CSDN通过智能技术生成
//获取多个二维数组的公共区间
    let getCommonInterval = (allList) => {
        //没有直接返回
        if (!allList.length) return []
        //最后返回的结果
        let resultList = []
        //目标数组为第一项
        let targetList = allList[0]
        for (let i = 1; i < allList.length; i++) {
            //对比项
            let comparativeItem = allList[i]
            //找出公共区间
            for (let j = 0; j < targetList.length; j++) {
                for (let k = 0; k < comparativeItem.length; k++) {
                    if (comparativeItem[k][1] < targetList[j][0] || comparativeItem[k][0] > targetList[j][1]){
                        break
                    }
                    let start = targetList[j][0]
                    let end = targetList[j][1]
                    if(comparativeItem[k][0] > start){
                        start = comparativeItem[k][0]
                    }
                    if(comparativeItem[k][1] < end){
                        end = comparativeItem[k][1]
                    }
                    resultList.push([start, end])
                }
            }
        }
        return resultList
    }

console.log(getCommonInterval([
            [[1, 9], [11, 20]],
            [[3, 11], [15, 18]],
        ]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值