Hunter
Hunter

Reputation: 1601

Response object data using as array

I have to write map function based on response data but response data is not an array

example response

{
  "data": {
    "e680c823-895b-46f0-b0a0-5f8c7ce57cb2": {
      "id": 98218,
       ......
    },
    "e24ed385-0b86-422e-a4cc-69064846e13b": {
      "id": 98217,
       .......
    },
    "c1cc583b-a2be-412b-a286-436563984685": {
      "id": 118868,
      .....
    }, 
}

var posts = data.map(function (item) {
    return  item.id;
});

I have to achieve like this console

console.log( posts[1].id ) //98217 

Upvotes: 0

Views: 45

Answers (2)

Tushar Shahi
Tushar Shahi

Reputation: 20431

Object.values() returns an array of Object values. You can loop over them to get your desired result.

let respData = {
  "data": {
    "e680c823-895b-46f0-b0a0-5f8c7ce57cb2": {
      "id": 98218
 
    },
    "e24ed385-0b86-422e-a4cc-69064846e13b": {
      "id": 98217
    },
    "c1cc583b-a2be-412b-a286-436563984685": {
      "id": 118868
    }
}
}


var posts = Object.values(respData['data']).map(function (item) {
    return  item;
});

console.log(posts[0].id) //98218

Upvotes: 1

Andy
Andy

Reputation: 63524

map over the Object.values and return the nested object.

const data = {
  data: {
    "e680c823-895b-46f0-b0a0-5f8c7ce57cb2": {
      "id": 98218
    },
    "e24ed385-0b86-422e-a4cc-69064846e13b": {
      "id": 98217
    },
    "c1cc583b-a2be-412b-a286-436563984685": {
      "id": 118868
    }
  }
};

const posts = Object.values(data.data).map(obj => obj);
console.log(posts[1].id);

Upvotes: 1

Related Questions