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

Posted wxydemo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于两数组,求出两数组中相同的的对象相关的知识,希望对你有一定的参考价值。

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)
        }
    })
技术图片

 

 这个才计算两次

  

 

 

以上是关于关于两数组,求出两数组中相同的的对象的主要内容,如果未能解决你的问题,请参考以下文章

急!!!C语言:输出两组数组中相同的数字

分治——最大数组和

为什么我不能在此片段中生成唯一对象数组?

js数组方法——找出两数组中不相同的元素的集合

数据结构 数组笔记

day09 - JavaScript有关数组和对象的的深拷贝和浅拷贝问题