合并两个升序的数组并且去重的方法

该博客探讨了一个JavaScript函数`arrConcat`,该函数用于合并两个数组并按升序排列。它通过比较数组元素并使用字典记录已添加的值来实现。在遍历过程中,较小的值被优先推入结果数组。未遍历完的数组元素会被追加到结果末尾。示例调用显示了将[1,2,4,5]和[2,4,6]合并排序后的结果为[1,2,4,5,6]。
摘要由CSDN通过智能技术生成
function arrConcat (arrA, arrB) {
    const res = [],
        dir = {};
    let pointerA = 0,
        pointerB = 0;
    while (pointerA < arrA.length && pointerB < arrB.length) {
        let temp;
        //将较小的值推到栈中
        if (arrA[pointerA] > arrB[pointerB]) {
            temp = arrB[pointerB++];
        }
        else {
            temp = arrA[pointerA++];
        }
        
        //字典记录添加过的数据
        if (!dir.hasOwnProperty(temp)) {
            res.push(temp);
            dir[temp] = true;
        }
    }

    //没有遍历到尾部的数组
    const otherData = arrA.slice(pointerA).concat(arrB.slice(pointerB));
    res.push(...otherData);

    console.log(res);//[1,2,4,5,6]
}
arrConcat([1,2,4,5],[2,4,6])

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值