zoukankan      html  css  js  c++  java
  • 关于两数组,求出两数组中相同的的对象

    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)
            }
        })

     这个才计算两次

      

     
  • 相关阅读:
    systick运用
    stm32的systick原理与应用
    PID算法知识点博文收藏记录
    关于STM32驱动DS1302实时时钟的一点思考
    什么是同步?什么是互斥?
    C语言小笔记(1)
    typedef 复杂函数指针
    获取窗口句柄
    GetWindowRect和GetClientRect的区别详解
    RepositionBars的用法和参数的意义(引用别人的)
  • 原文地址:https://www.cnblogs.com/wxydemo/p/12629631.html
Copyright © 2011-2022 走看看