I don't want to use for loop to convert Object to Array like this! If doubled the process and slow down the performance of app (I'm using Ionic2 and Typescript, with Firebase)
for(let key in data) { array.push(value); }
Is there any solution to iterate object itself(shown in picture attached) using *ngFor.
Or I can convert this Object(shown in picture attached) to Array, so that can be iterable in *ngFor.
To convert an object to an array you use one of three methods: Object. keys() , Object. values() , and Object. entries() .
Use let k: keyof T and a for-in loop to iterate objects when you know exactly what the keys will be. Be aware that any objects your function receives as parameters might have additional keys. Use Object. entries to iterate over the keys and values of any object.
You can use Object.keys(obj) to get named indexes. This will return an array structure which you can use/customize further. A sample use to iterate over object values may look like this
var persons = { john: { age: 23, year:2010}, jack: { age: 22, year:2011}, jenny: { age: 21, year:2012} }
Getting an iterator
var resultArray = Object.keys(persons).map(function(personNamedIndex){ let person = persons[personNamedIndex]; // do something with person return person; }); // you have resultArray having iterated objects
Since Angular 6, there is now a keyvalue pipe operator. Simple do the following:
*ngFor="let item of objectList | keyvalue" item.key # refers to the keys (134, 135...) in your example item.value # refers to the object for each key
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With