javascript – 递归更改数组结果

我正在使用一个API,它以包含额外节点的格式返回结果.我想以递归方式运行结果以删除“数据”节点,以便我可以在我的应用程序中使用它.

我可以用普通的javascript或Lodash做到这一点吗?

这是我得到的结果:

"pages": {
    "data": [
        {
            "id": 32,
            "pages": {
                "data": [
                    {
                        "id": 33,
                        "pages": {
                            "data": []
                        }
                    },
                    {
                        "id": 34,
                        "pages": {
                            "data": [
                                {
                                    "id": 35,
                                    "pages": {
                                        "data": []
                                    }
                                }
                            ]
                        }
                    }
                ]
            }
        },
        {
            "id": 36,
            "pages": {
                "data": []
            }
        }
    ]

这就是我想要回复的内容:

"pages": [
        {
            "id": 32,
            "pages": [
                {
                    "id": 33,
                    "pages":  []
                },
                {
                    "id": 34,
                    "pages": [
                        {
                            "id": 35,
                            "pages": []
                        }
                    ]
                }
            ]
        },
        {
            "id": 36,
            "pages": []
        }
    ]

解决方法:

您可以对嵌套数组进行检查和递归方法.

function clean(object) {
    if (object.pages && object.pages.data) {
        object.pages = object.pages.data;
        delete object.pages.data;
    }
    object.pages.forEach(clean);
}


var object = { pages: { data: [{ id: 32, pages: { data: [{ id: 33, pages: { data: [] } }, { id: 34, pages: { data: [{ id: 35, pages: { data: [] } }] } }] } }, { id: 36, pages: { data: [] } }] } };

clean(object);

console.log(object);
.as-console-wrapper { max-height: 100% !important; top: 0; }
上一篇:Javascript- Lodash shuffle vs. Math.Random()


下一篇:java学习(四) excel读取