How to iterate through an Object attributes in Angular 2

user6123723 picture user6123723 · Aug 21, 2016 · Viewed 26.3k times · Source

Here's my object (It has n number of dynamic keys. I've only shown two in the example below)

let obj = {
abc:["some text", "some more text"],
xyz:["more text", "what do you think?", "I'm tired now"]

}

Here's my attempt to loop throw the above and print all the values

 <div *ngFor='let item of obj ; let i = index;'>
            <p *ngFor="let value of obj.i">{{value}}
 </div>

But the above doesn't appear to work. What am I doing wrong and what's the correct syntax?

Answer

etrupja picture etrupja · Aug 21, 2016

You could do something like this:

<li *ngFor="let o of obj">
   <p *ngFor="let objArrayElement of generateArray(o)"> {{objArrayElement}} </p>
</li>

where generateArray looks like:

generateArray(obj){
   return Object.keys(obj).map((key)=>{ return obj[key]});
}