I am trying to learn more about array of objects. I have flatten array of objects and i am trying to nest it with levels when they have unique values. The thing is now i am using reduce, and getting new objects for each.
data = [
{ name1 : 'Tenis', id1: 1, name2: ATP, id2: 2, name3: Men Singles, id3: 4}
{ name1 : 'Tenis', id1: 1, name2: ATP, id2: 2, name3: Men Singles, id3: 4}
{ name1 : 'Tenis', id1: 1, name2: ATP, id2: 2, name3: Men Doubles, id3: 5}
{ name1 : 'Tenis', id1: 1, name2: WTA, id2: 3, name3: Women Doubles, id3: 6}
{ name1 : 'Tenis', id1: 1, name2: WTA, id2: 3, name3: Women Singles, id3: 7}
]
I want result to be:
result: [
 { sport: 'Tenis', 
   league: 
      [{ 
       ATP: [{ event: Men Singles, Men Doubles }]
       WTA: [{ event: Women Singles, Women Doubles   }]
      }]
}]
My code now:
const result = data.reduce((arr, item) => {
        if (arr.indexOf(item.name1) === -1) {
          arr.push({
            sport: item.name1 ,
            league: item.name2 ,
            event: item.name3 ,
          })
        }
        return arr
      }, [])
But i am getting every value:
0: {sportName: 'Tenis', league: 'ATP', event: 'Men Singles'}
1: {sportName: 'Tenis', league: 'WTA', event: 'Women Doubles'}
2: {sportName: 'Tenis', league: 'WTA', event: 'Women Doubles'}
.... etc
What i need to do, to obtain one nested object? I am literally blocked in mind.
 
     
    