[英]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.