簡體   English   中英

如何刪除深嵌套數組中的 object? Javascript

[英]How to remove object in deep nested array ? Javascript

dasjnkdsajnnjdajnkskdsanjnkjadnksjnjkdaksnnkanjknjkasndnsjasnkjnjkndsnkdasadknsj

   {
      "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":""
               }
            ]
         },

薩達薩達斯

dasdajnsdknajsdasdas dsadasdsadas

dasdajnsdknajsdasdas dsadasdsadas

dasdajnsdknajsdasdas dsadasdsadas

dasdajnsdknajsdasdas dsadasdsadas

dasdajnsdknajsdasdas dsadasdsadas

dasdajnsdknajsdasdas dsadasdsadas

dasdajnsdknajsdasdas d

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)
 
 

這是一個使用object-scan更靈活的解決方案。

權衡是它需要依賴。 如果這是可以接受的,實際上取決於您的要求是什么以及您可能正在進行的其他數據處理。

 // const objectScan = require('object-scan'); const myData = [{ 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, completed: false, work: 0, activityType: 4, goal: 2, trainingExercises: [] }, { name: 'Hirosima', description: 'hiorsima', difficulty: 2, completedPercentage: 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], seriesPause: [0], seriesCompleted: [false], seriesNote: [''], numberOfWarmupSeries: 0, completed: false, load: 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, 39], 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, completed: false, pause: 0, note: '' }] } }]; const prune = (data) => objectScan(['[*]trainingExercises.exercise'], { rtn: 'count', filterFn: ({ parent, property }) => { delete parent[property]; } })(data); console.log('exercise' in myData[1].trainingExercises); // => true console.log(prune(myData)); // returns number of deletions // => 1 console.log('exercise' in myData[1].trainingExercises); // => false
 .as-console-wrapper {max-height: 100%;important: top: 0}
 <script src="https://bundle.run/object-scan@13.8.0"></script>

免責聲明:我是對象掃描的作者

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM