2017-01-30 9 views
0

У меня есть JSon Как это -Вложенный массив фильтрации в lodash

[ 
    { 
     "place": 1, 
     "player": { 
      "playerId": 733234, 
      "firstName": "cheng", 
      "lastName": "w", 
      "country": { 
       "countryId": 13, 
       "name": "China", 
       "abbreviation": "CHN" 
      } 
     }, 
     "rounds": [ 
      { 
       "roundNumber": 1, 
       "startHole": 1 
      }, 
      { 
       "roundNumber": 2, 
       "startHole": 10, 
      }, 
      { 
       "roundNumber": 3, 
       "startHole": -1, 
       "courseId": 950 
      }, 
      { 
       "roundNumber": 4, 
       "startHole": -1, 
       "courseId": 950 
      } 
     ] 
    }, 
    { 
     "place": 2, 
     "player": { 
      "playerId": 392990, 
      "firstName": "Matt", 
      "lastName": "Harmon", 
      "country": { 
       "countryId": 1, 
       "name": "United States", 
       "abbreviation": "USA" 
      } 
     }, 
     "rounds": [ 
      { 
       "roundNumber": 1, 
       "startHole": 1 
      }, 
      { 
       "roundNumber": 2, 
       "startHole": 10, 
      } 
     ] 
    } 
] 

Мне нужно фильтровать и создать новый JSON, используя Lodash в указанном ниже формате. Я попытался _.filter, но всегда я получаю неопределенную ошибку

{ 
    rounds: [ 
     [ 
      { 
       player Name: "cheng", 
       roundNumber: 1 
       starthole: 1 
      }, 
      { 
       player Name: "math", 
       roundNumber: 1 
       starthole: 1 
      } 
     ], 
     [ 
      { 
       roundNumber: 2 
       player Name: "cheng", 
       starthole: 2 
      }, 
      { 
       roundNumber: 2 
       player Name: "math", 
       starthole: 2 
      } 
     ] 
    ] 
} 

Есть ли способ, чтобы перестроить JSon в новый формат с использованием lodash и Javascript

ответ

0

Вам не нужен фильтр. Вам нужно сопоставлять, поскольку вы переформатируете.

Вы можете связать карту и свернуть. В вашем случае

let modifiedArray=_(YOURARRAYHERE).map(s=>{ 
    let x=_.map(s.rounds,a=>{ 
     return { 
      roundNumber:a.roundNumber, 
      startHole:a.startHole, 
      playerName:s.player.firstName 
     } 
    }); 
    return x; 
}).flatten().value(); 

 Смежные вопросы

  • Нет связанных вопросов^_^