前端面试题-找出两个数组的不同值(差集)

第一种,最蠢的indexOf

        let arr1 = [1, 2, 3, 4, 5]
        let arr2 = [7, 4, 5, 3, 1]

        function fn(arr1) {
            let outArr = []
            arr1.forEach((v) => {
                if (arr2.indexOf(v) == -1) {
                    outArr.push(v)
                }
            })
            console.log('arr1里面没有', outArr);
        }
        
        fn(arr1)

第二种 new Set 数组去重之后来解决。

        let arr1 = [1, 3, 4, 2, 4, 1, 5]
        let arr2 = [1, 23, 42, 5, 2, 3, 33, 123, 40]

        function fn(arr1, arr2) {
            let newArr1 = new Set(arr1)
            let newArr2 = new Set(arr2)
            let outArr = []
            for (let item of newArr1) {
                if (!newArr2.has(item)) {
                    outArr.push(item)
                }
            }
            console.log(outArr);
        }

        fn(arr1, arr2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值