【问题标题】:Filter data from object inside another object [duplicate]从另一个对象内的对象中过滤数据[重复]
【发布时间】:2020-07-05 06:27:31
【问题描述】:

我有这样的情况:

var first = [
    {'id': 1},
    {'id': 2},
    {'id': 3},
    {'id': 4}
];
var second = [
    {'id': 2},
    {'id': 4}
];

我想从“第一”中过滤所有元素,其中 id 在“第二”内。 我正在尝试这样的事情:

var result = first.filter((x:any) => second.id.indexOf(x.id) < 0);

我尝试使用 foreach,但它不起作用。 我想得到的结果是这样的:

var first = [
    {'id': 2},
    {'id': 4}
];

【问题讨论】:

    标签: arrays angular typescript1.8


    【解决方案1】:

    您可以使用.filter().some() 组合。

    尝试以下方法:

    const first = [
        {'id': 1},
        {'id': 2},
        {'id': 3},
        {'id': 4}
    ];
    
    const second = [
        {'id': 2},
        {'id': 4}
    ];
    
    const result1 = first.filter(e => second.some(s => s.id === e.id));
    console.log('includes', result1);
    
    const result2 = first.filter(e => !second.some(s => s.id === e.id));
    console.log('not includes', result2);

    我希望这会有所帮助!

    【讨论】:

    • 谢谢!这正是我想要的!
    • @AndreNaves 太好了,乐于助人!如果它解决了您的问题,请随时接受作为答案或投票。欣赏。
    猜你喜欢
    • 2023-02-03
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 2021-10-30
    • 2021-09-02
    • 2020-03-14
    • 2023-03-12
    • 2021-01-09
    相关资源
    最近更新 更多