Home > Mobile >  How can I have my specific format using Object.entries?
How can I have my specific format using Object.entries?

Time:06-05

I have these data from my api (1) and the format I want to have is this one(2), how can I do that in my front-end using Object.entries in REACT, in such a way I can modify my (1) to have (2) please ? I tried but not working...

(1):

{
    "myData": [
        {
            "Peter": 12,
            "Donald": 15,
            "Huston": 65
        }
    ]
}

(2):

{
    "myData": [
        {
            "name": "Peter",
            "age": "12"
        },
        {
            "name": "Donald",
            "age": "15"
        },
        {
            "name": "Huston",
            "age": "65"
        }
    ]
}

I was thinking using destructuration like this :

const d= {myData}
const newData = Object.entries(...)//don't know

CodePudding user response:

lets say

   var myData = {
            "Peter": 12,
            "Donald": 15,
            "Huston": 65
        }
    var finalData = Object.entries(myData).map(entry => {
      const[key,value] = entry;
      return {
        name:key,
        age:value
      }  
    })
    console.log(finalData)

CodePudding user response:

Lets be fancy, time to utilise flatMap, array deconstruction and some shortcuts

const a = {
  "myData": [{
    "Peter": 12,
    "Donald": 15,
    "Huston": 65
  }]
}

console.log({
  myData: Object.entries(a.myData[0])
    .flatMap(([name, age] = e) => ({
      name,
      age
    }))
})

CodePudding user response:

const resp = {
  "myData": [{
    "Peter": 12,
    "Donald": 15,
    "Huston": 65
  }]
}

convertedData = []
for (const person of Object.entries(resp.myData[0])) {
  convertedData.push({
    name: person[0],
    age: person[1]
  })
}

CodePudding user response:

const data = {
  "myData": [{
    "Peter": 12,
    "Donald": 15,
    "Huston": 65
  }]
}

console.log( 
  Object.entries(data.myData[0])
  .reduce( (acc,[name,age])=>acc.concat({name,age}),[] ) 
)

  • Related