-4

I have an array of objects

[{
  quesName: 'ques1',
  ans: 'ans1',
  sectionName: 'section1'
}, {
  quesName: 'ques2',
  ans: 'ans2',
  sectionName: 'section1'
}, {
  quesName: 'ques3',
  ans: 'ans3',
  sectionName: 'section2'
}, {
  quesName: 'ques4',
  ans: 'ans4',
  sectionName: 'section2'
}, {
  quesName: 'ques5',
  ans: 'ans5',
  sectionName: 'section3'
}, {
  quesName: 'ques6',
  ans: 'ans6',
  sectionName: 'section3'
}]

I want to group these into an object like,

[{
  sectionName: "section1",
  sectionValues: [{
    quesName: 'ques1',
    ans: 'ans1'
  }, {
    quesName: 'ques2',
    ans: 'ans2'
  }]
}, {
  sectionName: "section2",
  sectionValues: [{
    quesName: 'ques3',
    ans: 'ans3'
  }, {
    quesName: 'ques4',
    ans: 'ans4'
  }]
}, {
  sectionName: "section2",
  sectionValues: [{
    quesName: 'ques5',
    ans: 'ans5'
  }, {
    quesName: 'ques6',
    ans: 'ans6'
  }]
}]
Rajesh
  • 24,354
  • 5
  • 48
  • 79

1 Answers1

1

What You need is Array.map

const data = [{          
    quesName: 'ques1',
    ans: 'ans1',
    sectionName: 'section1'
  }, {
    quesName: 'ques2',
    ans: 'ans2',
    sectionName: 'section1'
  }]

const newData = data.map(
   ({ sectionName, ans, quesName }) => ({
     sectionName,
     data: {
       ans, 
       quesName
      }
    }))

console.log(data, newData)
grzesiekgs
  • 463
  • 2
  • 11