多维数组的过滤方法

时间:2017-07-12 08:31:53

标签: javascript arrays multidimensional-array ecmascript-6

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

 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数组。

我的代码出了什么问题?

2 个答案:

答案 0 :(得分:2)

来自https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map

map()方法创建一个新数组,其结果是在调用数组中的每个元素上调用提供的函数。

答案 1 :(得分:1)

基于@ H77建议我改变了我的代码,现在我的代码看起来像这样,一切都运行良好

/opt/linaro-multilib-2013.09-gcc4.8/bin/arm-linux-gnueabihf-gcc -lm -g   -L"/home/aro/Downloads"  -o hicore  demoS2.c  -lpthread -lyuvlib  -lrt