• 关于两数组,求出两数组中相同的的对象


    1:平常的操作 (直接同for循环)

     
     let a = [{
            id: '1',
            name: '1'
        }, {
            id: '2',
            name: '2'
        }, {
            id: '3',
            name: '2'
        }]
        let b = [{
                id: '3',
                name: '3'
            },
            {
                id: '1',
                name: '1'
            }
        ]
        let c = [] //定义一个接受相同数组的数组
        let num = 0
        for (let item of a) {
            num++
            for (let items of b) {
                num++
                if (a.id == b.id) {
                    c.push(item)
                    console.log(num)
                    break
                }
            }
        }

     这个要算6次才能算出来

      2:用map去计算

    let a = [{
            id: '1',
            name: '1'
        }, {
            id: '2',
            name: '2'
        }, {
            id: '3',
            name: '3'
        }]
        let b = [{
                id: '3',
                name: '3'
            },
            {
                id: '1',
                name: '1'
            }
        ]
        let c = new Map()
        a.map(item => {
            c.set(item.id, item)
        })
        let d = []
        let e = []
        let num = 0
        b.map(item => {
            num++
            if (c.has(item.id)) {
                d.push(item)
                console.log(num)
            } else {
                e.push(item)
            }
        })

     这个才计算两次

      

     
  • 相关阅读:
    Java中使用CyclicBarrier
    Java中CountDownLatch使用初步
    设计模式简介
    Java中byte[]和char[]互相转换
    Java转换byte[]数组、Hex十六进制字符串
    TextBox自定义控件
    DataTrigger 绑定枚举
    WPF路径动画(动态逆向动画)
    github上传
    利用Canvas进行绘制XY坐标系
  • 原文地址:https://www.cnblogs.com/wxydemo/p/12629631.html
Copyright © 2020-2023  润新知