多维数组的过滤方法

贝赫特曼

我有一个id和我用这些过滤多维数组。我的代码是:

 service.fakedata.map(f=>{
          f.results.map(r=>{
             r = r.filter(m=> m.rId !== id)
          })
 })

我的数组是:

"services": [
    {
        "id": "1839f72e-fa73-47de-b119-49fb971a5730",
        "name": "In I/O Route",
        "url": "http://wwww.in.io/[param1]/[param2]",
        "inputParams": [
            {
                "id": "e74a6229-4c08-43a1-961f-abeb887fa90e",
                "name": "in1",
                "datatype": "string"
            },
            {
                "id": "e74a6229-4c08-43a1-961f-abeb887fa90o",
                "name": "in2",
                "datatype": "string"
            }
        ],
        "isArrayResult": false,
        "results": [
            {
                "id": "ef7c98db-9f12-45a8-b3fb-7d09a82abe3d",
                "name": "out1",
                "datatype": "string",
                "fakedatatype": [
                    "address",
                    "city"
                ]
            },
            {
                "id": "9b178ded-af27-43df-920f-daab5ad439b9",
                "name": "out2",
                "datatype": "string",
                "fakedatatype": [
                    "internet",
                    "url"
                ]
            }
        ],
        "routeParameters": [
            "param1",
            "param2"
        ],
        "fakedata": [
            {
                "id": "b0376694-9612-43d2-93ed-c74264df962e",
                "url": "http://wwww.in.io/wood/good",
                "params": [
                    {
                        "key": "param1",
                        "value": "wood"
                    },
                    {
                        "key": "param2",
                        "value": "good"
                    }
                ],
                "inputParams": [
                    {
                        "iId":"e74a6229-4c08-43a1-961f-abeb887fa90e",
                        "key": "in1",
                        "value": "m"
                    },
                    {
                        "iId":"e74a6229-4c08-43a1-961f-abeb887fa90o",
                        "key": "in2",
                        "value": "z"
                    }
                ],
                "results": [
                    {
                        "rId": "ef7c98db-9f12-45a8-b3fb-7d09a82abe3d",
                        "key": "out1",
                        "value": "result1",
                        "fakedatatype": [
                            "address",
                            "city"
                        ]
                    },
                    {
                        "rId": "9b178ded-af27-43df-920f-daab5ad439b9",
                        "key": "out2",
                        "value": "result2",
                        "fakedatatype": [
                            "internet",
                            "url"
                        ]
                    }
                ]
            }
        ]
    }
]

在这种情况下,过滤器正在工作(当我检查 console.log 时),但它不会更改fakedata数组。

我的代码有什么问题?

贝赫特曼

根据@H77 的建议,我更改了代码,现在我的代码如下所示,并且一切正常

 const s =  service.fakedata.map(f=>{
          f.results = f.results.map(r=>{
            return r.filter(m=> m.rId !== id)
          })
        })

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章