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(数据)