Javascript 如何在ES6中有效省略深度

Javascript 如何在ES6中有效省略深度,javascript,arrays,object,ecmascript-6,filtering,Javascript,Arrays,Object,Ecmascript 6,Filtering,我有一个嵌套的对象的数组 如何删除每个以下划线开头的键/值对 示例:{id:1,_-link:true}=>{id,1} 这是一个更完整的数据示例: { "data": [{ "name": "te4ste", "projectId": 1, "productAndServicesCategoryList": [{ "name": "b", "productAndService

我有一个嵌套的
对象的
数组

如何删除每个以下划线开头的
键/值

示例:
{id:1,_-link:true}=>{id,1}

这是一个更完整的数据示例:

{
    "data": [{
        "name": "te4ste",
        "projectId": 1,
        "productAndServicesCategoryList": [{
                "name": "b",
                "productAndServicesId": 1,
                "productAndServicesItemList": [{
                    "name": "w",
                    "productAndServicesCategoryId": 2,
                    "description": "w",
                    "version": null,
                    "createdDate": "2019-04-09T23:17:46.857Z",
                    "createdById": null,
                    "lastModifiedById": null,
                    "deleted": false,
                    "_links": {
                        "self": {
                            "href": "projects/services/contact-emails/emails/2"
                        }
                    },
                    "id": 2
                }],
                "description": "b",
                "version": null,
                "createdDate": "2019-04-09T22:24:37.508Z",
                "createdById": null,
                "lastModifiedById": null,
                "deleted": false,
                "_links": {
                    "self": {
                        "href": "projects/services/contact-emails/groups/2"
                    }
                },
                "id": 2
            },
            {
                "name": "a",
                "productAndServicesId": 1,
                "productAndServicesItemList": [{
                    "name": "c",
                    "productAndServicesCategoryId": 1,
                    "description": "c",
                    "version": null,
                    "createdDate": "2019-04-09T22:24:46.332Z",
                    "createdById": null,
                    "lastModifiedById": null,
                    "deleted": false,
                    "_links": {
                        "self": {
                            "href": "projects/services/contact-emails/emails/1"
                        }
                    },
                    "id": 1
                }],
                "description": "a",
                "version": null,
                "createdDate": "2019-04-09T22:24:32.717Z",
                "createdById": null,
                "lastModifiedById": null,
                "deleted": false,
                "_links": {
                    "self": {
                        "href": "projects/services/contact-emails/groups/1"
                    }
                },
                "id": 1
            }
        ],
        "description": "testset",
        "version": null,
        "createdDate": "2019-04-09T22:24:22.563Z",
        "createdById": null,
        "lastModifiedById": null,
        "deleted": false,
        "_links": {
            "self": {
                "href": "projects/services/newsletters/groups/1"
            }
        },
        "id": 1
    }],
    "total": 1
}
功能过滤器UnderScoreKeys(arr){
返回arr.map(obj=>{
常数res={};
对象键(obj)
.filter(k=>k[0]!=='\u')
.forEach(k=>res[k]=obj[k]);
返回res;
});
}

您可以创建一个递归函数,用于查看传入的对象类型并相应地执行操作。对于数组,将每个项传递回对象,移除键并传递回子项。这将在适当位置更改对象:

let data=[{“name”:“te4ste”,“projectId”:1,“productAndServicesCategoryList”:[{“name”:“b”,“productAndServicesId”:1,“productandservicessitemlist”:[{“name”:“w”,“productAndServicesCategoryId”:2,“description”:“w”,“version”:null,“createdDate”:“2019-04-09T23:17:46.857Z”,“createdById”:null,“lastModifiedById”:null,“deleted”:false,“U链接”:{“self”:{“href”:“projects/services/contact emails/emails/2”},“id”:2}],“description”:“b”,“version”:null,“createdDate”:“2019-04-09T22:24:37.508Z”,“createdById”:null,“lastModifiedById”:null,“deleted”:false,(u links:{“self”:{“projects/services/contact emails/groups/2”},“id”:2},{“name”:“a”,“productAndServicesId”:1,“productAndServicesItemList”:[{“名称”:“c”,“productAndServicesCategoryId”:1,“描述”:“c”,“版本”:null,“createdDate”:“2019-04-09T22:24:46.332Z”,“createdById”:null,“lastModifiedById”:null,“删除”:false,“U链接”:{“self”:{“href”:“项目/服务/联系电子邮件/电子邮件/1”},“id”:1},“描述”:“a”,“版本”:null,“createdDate”“:“2019-04-09T22:24:32.717Z”,“createdById”:null,“lastModifiedById”:null,“deleted”:false,“\u links:{”self:{”href:“projects/services/contact emails/groups/groups/1”},“description:“testset”,“version”:null,“createdDate:“2019-04-09T22:24:22.563Z”,“createdById”:null,“lastModifiedById”:null,“deleted”:false,“\u links:{”self:{”self:{”href:“{:”“项目/服务/时事通讯/组/1”},“id:1}]
功能移除(obj){
如果(!obj | | typeof obj!=“object”)返回
Object.keys(obj.forEach)(k=>{
如果(k.startsWith(“”)删除obj[k]
否则删除_s(对象[k])
}) 
}
删除(数据)
console.log(数据)