javascript - 过滤 2 个数组以检查父子是否

我有第一个数组-

let parent = [
    {
     id:1,
     value:"ABC",
    },
    {
     id:2,
     value:"DEF",
    },
    {
     id:3,
     value:"GHI",
    },
    {
     id:4,
     value:"JKL",
    },
    {
     id:5,
     value:"MNO",
    },
    {
     id:6,
     value:"PQR",
    },
    ]

和第二个数组对象 -

let child = [
{
 childid:1,
 value:"ABC",
},
{
 childid:2,
 value:"DEF",
},
{
 childid:10,
 value:"GHI",
},
]

我想从父数组中选择所有 id 与子数组中的 childid 匹配的元素。

我试过了-

parent.filter(x=>x.id==child.each(y=>y.childid))

但它不起作用

最佳答案

您可以使用 some()做这件事

let parent = [
    {
     id:1,
     value:"ABC",
    },
    {
     id:2,
     value:"DEF",
    },
    {
     id:3,
     value:"GHI",
    },
    {
     id:4,
     value:"JKL",
    },
    {
     id:5,
     value:"MNO",
    },
    {
     id:6,
     value:"PQR",
    },
    ]
 
 let child = [
{
 childid:1,
 value:"ABC",
},
{
 childid:2,
 value:"DEF",
},
{
 childid:10,
 value:"GHI",
},
]


let result = parent.filter(p => child.some(a =>  a.childid == p.id ))
console.log(result)

https://stackoverflow.com/questions/74065943/

相关文章:

java - @EnableGlobalMethodSecurity 在新的 spring boot

c++ - 使用 enable_if 对类方法进行部分模板特化

user-interface - 愚蠢且令人沮丧的跨浏览器 UI 问题

rust - 将闭包指定为返回类型的替代方法?

performance - Oracle/PLSQL 性能

java - 流迭代不使用最后一个值

c++ - 为什么即使还有弱指针,make_shared 也会调用析构函数?

r - 与 R 中的日期相关联的条件累积和

.net - 投票 : What do you call your business layer b

regex - 使用 awk 只包含以特定值开头的列?