首页 > 解决方案 > 如何删除深层嵌套数组中的对象?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

标签: javascript

解决方案


这是一个使用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>

免责声明:我是对象扫描的作者


推荐阅读