首页 > 解决方案 > 如何从嵌套在js对象数组中的数组中删除sessionID:null值对象

问题描述

[
    {
        "_id": "5edfb4e587a1873120735dcf",
        "firstname": "abc",
        "lastname": "abc",
        "sessions": [
            {
                "_id": "5efc68d146d8330a449e7108",
                "sessionID": null
            },
            {
                "_id": "5efc68e646d8330a449e710a",
                "sessionID": null
            }
        ]
    },
    {
        "_id": "5eedf5685bdb7d33c83186e7",
        "firstname": "sam",
        "lastname": "ple",
        "sessions": [
            {
                "_id": "5efc692d46d8330a449e710c",
                "sessionID": null
            }
        ]
    },
    {
        "_id": "5ef04df83e41dd5b78fe6908",
        "firstname": "User",
        "lastname": "name1",
        "sessions": [
            {
                "_id": "5efc6a8846d8330a449e710e",
                "sessionID": null
            },
            {
                "_id": "5efc6abd46d8330a449e7110",
                "sessionID": null
            }
        ]
    },
    {
        "_id": "5efe0d0c7300073244d765d9",
        "sessions": [],
        "firstname": "User",
        "lastname": "name1"
    }
]

标签: javascriptarraysjsonmongodbobject

解决方案


您需要映射您的数组并过滤掉带有 null 的会话

let originalArray = [
    {
        "_id": "5edfb4e587a1873120735dcf",
        "firstname": "abc",
        "lastname": "abc",
        "sessions": [
            {
                "_id": "5efc68d146d8330a449e7108",
                "sessionID": null
            },
            {
                "_id": "5efc68e646d8330a449e710a",
                "sessionID": null
            }
        ]
    },
    .... the rest of your orignal object
]

let newArray = originalArray.map(item => {
    let sessions = item.sessions.filter(session => {
        return session.sessionID !== null
    })

    return {
        ...item,
        sessions
    }
})

推荐阅读