【问题标题】:Filter complex array in react native?在本机反应中过滤复杂数组?
【发布时间】:2022-11-17 19:36:41
【问题描述】:

我有数组。

const arr = [{
    "status": "success",
    "data": [{
            "name": "user1",
            "games": [{
                "id": 1,
                "gamename": "cricket"
            }, {
                "id": 2,
                "gamename": "football"
            }]
        },
        {
            "name": "user1",
            "games": [{
                "id": 1,
                "gamename": "videogames"
            }, {
                "id": 2,
                "gamename": "volleyball"
            }]
        }
    ]
}]

我尝试按照代码对其进行过滤。并且没有输出显示

arr.map((item,idx) => (
  
       console.log(item.data.games.gamename)
   )
  ))

我想打印所有游戏名称,例如。

蟋蟀 足球 视频游戏 排球

【问题讨论】:

    标签: javascript reactjs arrays react-native sorting


    【解决方案1】:

    我们可以使用flatMap()来做

    const arr = [{
        "status": "success",
        "data": [{
                "name": "user1",
                "games": [{
                    "id": 1,
                    "gamename": "cricket"
                }, {
                    "id": 2,
                    "gamename": "football"
                }]
            },
            {
                "name": "user1",
                "games": [{
                    "id": 1,
                    "gamename": "videogames"
                }, {
                    "id": 2,
                    "gamename": "volleyball"
                }]
            }
        ]
    }]
    
    // multiple flatMap chain invocation seems ugly,waiting for more elegant solution
    let result = arr.flatMap(a => a.data).flatMap(a => a.games).flatMap(a => a.gamename)
    console.log(result)

    【讨论】:

      【解决方案2】:

      数据是数组,游戏也是:

      const arr = [
        {
          status: "success",
          data: [
            {
              name: "user1",
              games: [
                {
                  id: 1,
                  gamename: "cricket",
                },
                {
                  id: 2,
                  gamename: "football",
                },
              ],
            },
            {
              name: "user1",
              games: [
                {
                  id: 1,
                  gamename: "videogames",
                },
                {
                  id: 2,
                  gamename: "volleyball",
                },
              ],
            },
          ],
        },
      ];
      
      arr.map((item) => {
        item.data.map((item) => {
          item.games.map((item) => {
            console.log(item.gamename);
          });
        });
      });
      
      

      【讨论】:

        猜你喜欢
        • 2022-12-07
        • 1970-01-01
        • 2018-04-02
        • 2019-03-05
        • 2020-08-09
        • 1970-01-01
        • 2019-08-16
        • 2018-02-01
        • 1970-01-01
        相关资源
        最近更新 更多