javascriptangularmultidimensional-arrayangular-datatables

get values from array in angular 5


i want to retrieve values from array my code is like

this.RoleServiceService.getRoleById(this.id).subscribe(data => {
  this.roleData.push(data['data']);
  console.log(this.roleData);
})

but i am getting array like this

i have tried like role=roleData[0]; but giving undefined can you please help me with this enter image description here

    []
0
:
Array(4)
0
:
{id: 5, name: "edit_page", guard_name: "api", created_at: "2018-03-30 10:09:38", updated_at: "2018-03-30 10:09:38", …}
1
:
{id: 6, name: "create_page", guard_name: "api", created_at: "2018-03-30 10:09:38", updated_at: "2018-03-30 10:09:38", …}
2
:
{id: 7, name: "create_post", guard_name: "api", created_at: "2018-04-06 11:11:40", updated_at: "2018-04-06 11:11:40", …}
3
:
{id: 8, name: "view_post", guard_name: "api", created_at: "2018-04-06 11:11:40", updated_at: "2018-04-06 11:11:40", …}
length
:
4

Solution

  • You have to take, this.roleData = data['data']

    Since data['data'] returns an array, it is wrong that you are pushing that array to first index;

    this.roleData = [];
    
    this.RoleServiceService.getRoleById(this.id).subscribe(data => {
      this.roleData = data['data'];
      console.log(data['data']);
      console.log(this.roleData);
    })
    

    If you want to append the data you can also use a for loop

    Appeding data:

    this.RoleServiceService.getRoleById(this.id).subscribe(data => {
      data['data'].forEach(element => {
        this.roleData.push(element)
     });
      console.log(data['data']);
      console.log(this.roleData);
    })