通过循环一个数组来查找另一个数组中的数据(MongoDB、Javascript)

knsnq2tg  于 2022-12-12  发布在  Go
关注(0)|答案(1)|浏览(180)

我有两个数组。

array1 = [1, 2, 3]
array2 = [{id:1}, {id:1}, {id:3}]

我想得到一个具有相同id的对象的数组。就像当我得到1的所有对象时,我会循环通过array2,得到对象,然后把它们放在第三个数组中。
我在这一点上卡住了。
更新:
感谢flyingfox解决了我的问题。但是我发现如果我在array1中有重复的值,array2就不会多次包含它。

let array1 = [1, 3, 3, 3]
let array2 = [{id:1}, {id:2},{id:3}]

array1 = array1.filter(e1 => array2.some(e2 => e2.id === e1))
array2 = array2.filter(e1 => array1.some(e2 => e2 === e1.id))

here array2=[{id:1}, {id:3}]
But I want to get the duplicate as well. 
Like array2=[{id:1}, {id:3}, {id:3}, {id:3}] as array1 has 3 multiple time
kpbwa7wx

kpbwa7wx1#

如果你只是想把所有具有相同id的元素放到一个新数组中,那么下面是一个参考

let array1 = [1, 2, 3]
let array2 = [{id:1}, {id:1}, {id:3},{id:4}]

array1 = array1.filter(e1 => array2.some(e2 => e2.id === e1))
array2 = array2.filter(e1 => array1.some(e2 => e2 === e1.id))

let array3 = [...array1,...array2]
console.log(array3)

相关问题