【问题标题】:Filter array based on sub array of objects properties基于对象属性的子数组过滤数组
【发布时间】:2021-03-13 05:50:21
【问题描述】:

鉴于以下对象数组,我正在尝试根据具有 ID 为 30 的对象的事件数组过滤顶部数组

var staff = [];
staff.push({
    Id: 122,
    Events: [
        {Id: 30,Name: "Foo"},
        {Id: 57,Name: "Bar"}
    ]});
staff.push({
    Id: 122,
    Events: [
        {Id: 57,Name: "Bar"}
    ]});
    

到目前为止,我已经尝试了以下变体:

$.grep(staff, function (item) {
    return item.Events.Id == 30
});

任何帮助将不胜感激

预期输出:

var staff = [{Id: 122, Events: [{Id: 30,Name: "Foo"},{Id: 57,Name: "Bar"}]}];

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    var staff = [];
    staff.push({
      Id: 122,
      Events: [
        { Id: 30, Name: 'Foo' },
        { Id: 57, Name: 'Bar' }
      ]
    });
    staff.push({
      Id: 122,
      Events: [{ Id: 57, Name: 'Bar' }]
    });
    
    const res = staff.filter((item) => item.Events.some((e) => e.Id === 30));
    console.log(res);

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    相关资源
    最近更新 更多