如何删除深嵌套数组中的对象?Javascript
Dasjnkdsajnnjdajnkskdsanjjadnksjnkdaksnjnkanjkknjkansnjasnskjjnkndsnkdasadknsj如何删除深嵌套数组中的对象?Javascript,javascript,Javascript,Dasjnkdsajnnjdajnkskdsanjjadnksjnkdaksnjnkanjkknjkansnjasnskjjnkndsnkdasadknsj { "name":"Pacinciriaidisiasi 55", "dsa":[ ] "das":false,
{
"name":"Pacinciriaidisiasi 55",
"dsa":[
]
"das":false,
"das":false,
"ads":{
"ads":"test",
"da":"te",
eId":123,
"series":[
],
}on":"o gilmanesu tetp 2",
"dsa":4,
"das":5,
"lastModificationTime":"2020-12-20T10:21:33.063738",
"das":"sda-12-04T19:30:33.841649",
"dsa":0,
"das":76
},
"das":[
{
"dasd":false,
"ads":34,
"dsad":0.0,
"dsa":false,
"das":0,
"dsa":""
}
]
},
萨达斯
dasdajnsdnajsdasdas
达斯达斯达斯
dasdajnsdnajsdasdas
达斯达斯达斯
dasdajnsdnajsdasdas
达斯达斯达斯
dasdajnsdnajsdasdas
达斯达斯达斯
dasdajnsdnajsdasdas
达斯达斯达斯
dasdajnsdnajsdasdas
达斯达斯达斯
dasdajnsdnajsdasdas
d这里有一个更灵活的解决方案 折衷是它需要依赖性。这是否可以接受取决于您的需求以及您可能正在进行的其他数据处理
//const objectScan=require('object-scan');
const myData=[{name:'pacinciriaidisia 55',description:'Pancirica',userId:2,trainerId:60,dateFrom:'2021-01-15T07:00:00',dateTo:'2021-01-15T07:22:00',持续时间:0,难度:2,完成百分比:0,完成:false,工作:0,活动类型:4,目标:2,训练练习:[]},{名称:'Hirosima',描述:'hiorsima',难度:2,完成百分比:0,完成:false,工作:0,活动类型:4,目标:3,训练练习:{练习名称:'Gajo Haj',练习id:76,id:330,isTimed:false,练习:{名称:'Gajo Haj',描述:'Gajo opis',难度:0,难度:[2],设备ID:0,主图片URL:'',位置:[5],isTest:false,isFunctional:true,isTimed:true,TrainingTemplateExecutions:[{trainingTemplateId:48,ExecuteId:76,系列:[34],系列负载:[0],系列原因:[0],系列完成:[false],系列注释:['],numberOfWarmupSeries:0,completed:false,load:0,failureSet:false,isWarmup:false,isTimed:false,isTest:false,trainingTemplate:{name:'test',description:'te',TrainingId:60,activityType:4,目标:3,trainingTemplate练习:[{trainingTemplateId:48,练习ID:31,系列:[36,51],系列负载:[23,39],系列原因:[18,31],序列完成:[false,false],序列注释:['radi editovano','radi editovano','radi editovano',WarmupSeries编号:0,完成:false,isTest:false,练习:{名称:'Potisk s prsi poševno editovani prao 12月30日,'描述:'KOntrolirana izvedba.Hitrost 2:1(2 sekundi popuššaš,1 sekundo dvigaš)。',难度:0,难度:[],设备ID:15,类型:'',主图片URL:'',完整视频URL:'https://www.lacanl.com/images/Screen 2014年12月23日录制2020-12-13,地点:[0,1],isTest:false,isFunctional:false,primaryExerciseGoal:1,secondaryExerciseGoal:1,TrainingTemplateExecuts:[],isDeleted:false,id:31},删除时间:'0001-01-01T00:00:00',删除:false,id:391},{trainingTemplateId:48,exerciseId:123,series:[],seriesLoad:[],seriesAuse:[],seriesCompleted:[],seriesNote:[],numberOfWarmupSeries:0,completed:false,isTest:false,exercise:{name:'TESTNO-zagrevanje',description:'TESTNO-zagrevanje-trcnaje',难度:0,难度:[1,0],设备ID:18,类型:'',mainPictureUrl:'',fullVideoUrl:'https://www.lacanl.com/images/Screen 记录2020年12月20日于22.22.34.mov',地点:[2],isTest:false,isFunctional:false,IsItemd:true,loadType:1,TrainingTemplateExecuts:[],isDeleted:false,lastModificationTime:'2021-01-09T18:12:55.781719',creationTime:'2021-01-09T18:12:41.531278',creatorUserId:0,id:123},deletionTime:'0001-01-01T00:00:00',被删除:false,creationTime:'2021-01-09T18:19:51.308286',creatorUserId:60,id:406}],TrainingPlantTrainingTemplates:[{trainingPlanId:35,trainingTemplateId:48,TrainingPlant:{name:'Ep o GIlgamesu 2',description:'o gilmanesu tetp 2',主要目标:4,次要目标:5,培训计划模板:[{trainingPlanId:35,培训模板ID:47,培训模板:{name:'pacinciriadisia 55',description:'Pancirica',traininerid:60,目标:2,培训模板练习:[],培训模板:[],isDeleted:false,creationTime:'2020-12-18T06:02:41.249868',creatorUserId:60,id:47},isDeleted:false,creationTime:'2020-12-30T12:53:56.732597',creatorUserId:60,id:7}],trainerId:60,isDeleted:false,id:35},isDeleted:false,creationTime:'2020-12-30T12:53:56.732636',creatorUserId:60,id:8}],isDeleted:false,creationTime:'2020-12-18T06:24:35.914538',creatorUserId:60,id:48},deletionTime:'0001-01-01T00:00:00',isDeleted:false,lastModificationTime:'2020-12-30T12:53:43.889724',lastModifierUserId:60,creationTime:'2020-12-18T06:24:35.917131',creatorUserId:60,id:330}],isDeleted:false,lastModificationTime:'2020-12-20T10:21:33.063738',creationTime:'2020-12-04T19:30:33.841649',creatorUserId:0,id:76},集合:[{isWarmup:false,reps:34,值:0,完成:false,暂停:0,注意:'}];
常量prune=(数据)=>objectScan(['[*]trainingExercises.exercise']{
rtn:'计数',
filterFn:({parent,property})=>{
删除父项[属性];
}
})(数据);
console.log(myData[1]中的“练习”)。培训练习);
//=>正确
log(prune(myData));//返回删除的次数
// => 1
console.log(myData[1]中的“练习”)。培训练习);
//=>错误
。作为控制台包装{最大高度:100%!重要;顶部:0}
我要处理这个.trainingPlanResponse.map(plan=>{plan.trainingexercise.map(mapedExercise=>删除mapedExercise.exercise)})哪种解决方案更好?你的还是我的?使用map还是使用for循环?你应该使用forEach,这里不需要使用map。你更喜欢这两种解决方案中的哪一种是真正的首选方案。它们都是可读的,forEach可能会稍微慢一点,但与你无关。map函数是更好的方法。你也可以使用过滤器
var items = [{
"name": "Pacinciriaidisiasi 55",
"description": "Pancirica",
"userId": 2,
"trainerId": 60,
"dateFrom": "2021-01-15T07:00:00",
"dateTo": "2021-01-15T07:22:00",
"duration": 0,
"difficulty": 2,
"completedPercentage": 0.0,
"completed": false,
"work": 0,
"activityType": 4,
"goal": 2,
"trainingExercises": [
]
}, {
"name": "Hirosima",
"description": "hiorsima",
"difficulty": 2,
"completedPercentage": 0.0,
"completed": false,
"work": 0,
"activityType": 4,
"goal": 3,
"trainingExercises": {
"exerciseName": "Gajo Haj",
"exerciseId": 76,
"id": 330,
"isTimed": false,
"exercise": {
"name": "Gajo Haj",
"description": "Gajo jo opis",
"difficulty": 0,
"difficulties": [
2
],
"equipmentId": 0,
"mainPictureUrl": "",
"location": [
5
],
"isTest": false,
"isFunctional": true,
"isTimed": true,
"trainingTemplateExercises": [{
"trainingTemplateId": 48,
"exerciseId": 76,
"series": [
34
],
"seriesLoad": [
0.0
],
"seriesPause": [
0
],
"seriesCompleted": [
false
],
"seriesNote": [
""
],
"numberOfWarmupSeries": 0,
"completed": false,
"load": 0.0,
"failureSet": false,
"isWarmup": false,
"isTimed": false,
"isTest": false,
"trainingTemplate": {
"name": "test",
"description": "te",
"trainerId": 60,
"activityType": 4,
"goal": 3,
"trainingTemplateExercises": [{
"trainingTemplateId": 48,
"exerciseId": 31,
"series": [
36,
51
],
"seriesLoad": [
23.0,
39.0
],
"seriesPause": [
18,
31
],
"seriesCompleted": [
false,
false
],
"seriesNote": [
"radi editovano",
"radi editovano"
],
"numberOfWarmupSeries": 0,
"completed": false,
"isTest": false,
"exercise": {
"name": "Potisk s prsi poševno editovani prao 30 dec",
"description": "KOntrolirana izvedba. Hitrost 2:1 ( 2 sekundi popuščaš, 1 sekundo dvigaš). ",
"difficulty": 0,
"difficulties": [
],
"equipmentId": 15,
"type": "",
"mainPictureUrl": "",
"fullVideoUrl": "https://www.lacanl.com/images/Screen Recording 2020-12-13 at 23.20.14.mov",
"location": [
0,
1
],
"isTest": false,
"isFunctional": false,
"primaryExerciseGoal": 1,
"secondaryExerciseGoal": 1,
"trainingTemplateExercises": [
],
"isDeleted": false,
"id": 31
},
"deletionTime": "0001-01-01T00:00:00",
"isDeleted": false,
"id": 391
},
{
"trainingTemplateId": 48,
"exerciseId": 123,
"series": [
],
"seriesLoad": [
],
"seriesPause": [
],
"seriesCompleted": [
],
"seriesNote": [
],
"numberOfWarmupSeries": 0,
"completed": false,
"isTest": false,
"exercise": {
"name": "TESTNO zagrevanje",
"description": "testno zagrevanje trcnaje",
"difficulty": 0,
"difficulties": [
1,
0
],
"equipmentId": 18,
"type": "",
"mainPictureUrl": "",
"fullVideoUrl": "https://www.lacanl.com/images/Screen Recording 2020-12-20 at 22.22.34.mov",
"location": [
2
],
"isTest": false,
"isFunctional": false,
"isTimed": true,
"loadType": 1,
"trainingTemplateExercises": [
],
"isDeleted": false,
"lastModificationTime": "2021-01-09T18:12:55.781719",
"creationTime": "2021-01-09T18:12:41.531278",
"creatorUserId": 0,
"id": 123
},
"deletionTime": "0001-01-01T00:00:00",
"isDeleted": false,
"creationTime": "2021-01-09T18:19:51.308286",
"creatorUserId": 60,
"id": 406
}
],
"trainingPlanTrainingTemplates": [{
"trainingPlanId": 35,
"trainingTemplateId": 48,
"trainingPlan": {
"name": "Ep o GIlgamesu 2",
"description": "o gilmanesu tetp 2",
"primaryGoal": 4,
"secondaryGoal": 5,
"trainingPlanTrainingTemplates": [{
"trainingPlanId": 35,
"trainingTemplateId": 47,
"trainingTemplate": {
"name": "Pacinciriaidisiasi 55",
"description": "Pancirica",
"trainerId": 60,
"goal": 2,
"trainingTemplateExercises": [
],
"trainingPlanTrainingTemplates": [
],
"isDeleted": false,
"creationTime": "2020-12-18T06:02:41.249868",
"creatorUserId": 60,
"id": 47
},
"isDeleted": false,
"creationTime": "2020-12-30T12:53:56.732597",
"creatorUserId": 60,
"id": 7
}],
"trainerId": 60,
"isDeleted": false,
"id": 35
},
"isDeleted": false,
"creationTime": "2020-12-30T12:53:56.732636",
"creatorUserId": 60,
"id": 8
}],
"isDeleted": false,
"creationTime": "2020-12-18T06:24:35.914538",
"creatorUserId": 60,
"id": 48
},
"deletionTime": "0001-01-01T00:00:00",
"isDeleted": false,
"lastModificationTime": "2020-12-30T12:53:43.889724",
"lastModifierUserId": 60,
"creationTime": "2020-12-18T06:24:35.917131",
"creatorUserId": 60,
"id": 330
}],
"isDeleted": false,
"lastModificationTime": "2020-12-20T10:21:33.063738",
"creationTime": "2020-12-04T19:30:33.841649",
"creatorUserId": 0,
"id": 76
},
"sets": [{
"isWarmup": false,
"reps": 34,
"value": 0.0,
"completed": false,
"pause": 0,
"note": ""
}]
}
}]
console.log(items)
for(var item of items){
if(item.trainingExercises ){
if(item.trainingExercises.exercise){
delete item.trainingExercises.exercise
}
}
}
console.log(items)