繁体   English   中英

Lodash中的嵌套数组过滤

[英]Nested array filtering in lodash

我有这样的杰森-

[
    {
        "place": 1,
        "player": {
            "playerId": 733234,
            "firstName": "cheng",
            "lastName": "w",
            "country": {
                "countryId": 13,
                "name": "China",
                "abbreviation": "CHN"
            }
        },
        "rounds": [
            {
                "roundNumber": 1,
                "startHole": 1
            },
            {
                "roundNumber": 2,
                "startHole": 10,
            },
            {
                "roundNumber": 3,
                "startHole": -1,
                "courseId": 950
            },
            {
                "roundNumber": 4,
                "startHole": -1,
                "courseId": 950
            }
        ]
    },
    {
        "place": 2,
        "player": {
            "playerId": 392990,
            "firstName": "Matt",
            "lastName": "Harmon",
            "country": {
                "countryId": 1,
                "name": "United States",
                "abbreviation": "USA"
            }
        },
        "rounds": [
            {
                "roundNumber": 1,
                "startHole": 1
            },
            {
                "roundNumber": 2,
                "startHole": 10,
            }
        ]
    }
]

我需要使用Lodash过滤和创建以下格式的新json。 我试过_.filter但总是出现未定义的错误

{
    rounds: [
        [
            {
                player Name: "cheng",
                roundNumber: 1
                starthole: 1
            },
            {
                player Name: "math",
                roundNumber: 1
                starthole: 1
            }
        ],
        [
            {
                roundNumber: 2
                player Name: "cheng",
                starthole: 2
            },
            {
                roundNumber: 2
                player Name: "math",
                starthole: 2
            }
        ]
    ]
}

有什么办法可以使用lodash和Javascript将Json重组为新格式

您不需要过滤器。 重新格式化时需要映射。

您可以链接地图和展平。 就你而言

let modifiedArray=_(YOURARRAYHERE).map(s=>{
    let x=_.map(s.rounds,a=>{
        return {
            roundNumber:a.roundNumber,
            startHole:a.startHole,
            playerName:s.player.firstName
        }
    });
    return x;
}).flatten().value();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM