相关疑难解决方法(0)

当对象键值在数组中时如何过滤数组

我有一个数组模型如下:

records:[{
    "empid":1,
    "fname": "X",
    "lname": "Y"
},
{
    "empid":2,
    "fname": "A",
    "lname": "Y"
},
{
    "empid":3,
    "fname": "B",
    "lname": "Y"
},
{
    "empid":4,
    "fname": "C",
    "lname": "Y"
},
{
    "empid":5,
    "fname": "C",
    "lname": "Y"
}
]
Run Code Online (Sandbox Code Playgroud)

现在我有一系列的empid [1,4,5].

所以现在我需要过滤包含我第二个中所有键的第一个数组.

输出:

records:[{
    "empid":1,
    "fname": "X",
    "lname": "Y"
},
{
    "empid":4,
    "fname": "C",
    "lname": "Y"
},
{
    "empid":5,
    "fname": "C",
    "lname": "Y"
}
]
Run Code Online (Sandbox Code Playgroud)

我可以使用forEach循环进行此操作,angular但因为我的模型对象中有超过100条记录.我需要一个关于如何更好地处理这个问题的建议.

我正在考虑创建一个自定义过滤器,但你对它有何看法.(如果是,请提供示例代码来实现此目的).

您的帮助得到了认可.

谢谢.

javascript angularjs angular-filters

17
推荐指数
2
解决办法
6万
查看次数

在javascript中基于另一个数组过滤对象数组

我有一个对象数组

people = [
    {id: "1", name: "abc", gender: "m", age:"15" },
    {id: "2", name: "a", gender: "m", age:"25" },
    {id: "3", name: "efg", gender: "f", age:"5" },
    {id: "4", name: "hjk", gender: "m", age:"35" },
    {id: "5", name: "ikly", gender: "m", age:"41" },
    {id: "6", name: "ert", gender: "f", age:" 30" },
    {id: "7", name: "qwe", gender: "f", age:" 31" },
    {id: "8", name: "bdd", gender: "m", age:" 78" },
]
Run Code Online (Sandbox Code Playgroud)

我有另一个数组:

id_filter = [1,4,5,8]
Run Code Online (Sandbox Code Playgroud)

如果id匹配数组中的任何元素,我想过滤人的id_filter …

javascript arrays filter

11
推荐指数
4
解决办法
9244
查看次数

按ID数组过滤对象数组

我有一组activeIds服务ID,还有另一个servicesList包含服务对象的数组.

示例: -

activeIds = [202, 204]
serviceList = [{  
                "id":201,
                "title":"a"
               },
               {  
                "id":202,
                "title":"a"
               },
               {  
                "id":203,
                "title":"c"
               },
               {  
                "id":204,
                "title":"d"
               },
               {  
                "id":205,
                "title":"e"
               }];
Run Code Online (Sandbox Code Playgroud)

我想要所有的服务(obj),其id不是第一个数组的一部分,即activeIds.从上面的示例代码我想要ids 201,203,205的服务obj

最终输出 -

expectedArray = [{  
                "id":201,
                "title":"a"
               },
               {  
                "id":203,
                "title":"c"
               },
               {  
                "id":205,
                "title":"e"
               }];
Run Code Online (Sandbox Code Playgroud)

这是我尝试编码.但这根本不正确.请帮忙-

    const activeIds = e; // [202, 204]
    const obj = [];
    this.serviceList.map((s: IService) => {
        activeIds.map((id: number) => {
            if (id !== s.id) {
                obj.push(s); …
Run Code Online (Sandbox Code Playgroud)

javascript arrays object angular

1
推荐指数
2
解决办法
718
查看次数