如何删除深嵌套数组中的对象?Javascript

如何删除深嵌套数组中的对象?Javascript,javascript,Javascript,Dasjnkdsajnnjdajnkskdsanjjadnksjnkdaksnjnkanjkknjkansnjasnskjjnkndsnkdasadknsj { "name":"Pacinciriaidisiasi 55", "dsa":[ ] "das":false,

Dasjnkdsajnnjdajnkskdsanjjadnksjnkdaksnjnkanjkknjkansnjasnskjjnkndsnkdasadknsj

   {
      "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)