-1

How to iterate in a better way through A and B?

Data structure A:

AbsatzNrSaetzeText: { [key: string]: string[] };

Data structure B:

 AbsatzNrSaetzeText: Record<number, string[]>;

Is there a better way, to get that value:

     for (var i = 0; i < this.UI_Seiten.length; i++) {
      for (var j in this.UI_Seiten[i].AbsatzNrSaetzeText) {
        for (var k = 0; k < this.UI_Seiten[i].AbsatzNrSaetzeText[j.valueOf()].length; k++) {
          console.log(this.UI_Seiten[i].AbsatzNrSaetzeText[j.valueOf()][k]);
        }
      }
    }
Aluan Haddad
  • 29,886
  • 8
  • 72
  • 84

1 Answers1

0

For iterable objects (like arrays), there is no need to reference the index in order to iterate over the values - for..of allows for significantly cleaner code, by putting the value being iterated over directly into an identifier that can be used in later loops.

Use Object.values instead of for..in, since you don't care about the key on the object, only about the value.

for (const seiten of this.UI_Seiten) {
    for (const arr of Object.values(seiten.AbsatzNrSaetzeText)) {
        for (const str of arr) {
            console.log(str);
        }
    }
}
CertainPerformance
  • 356,069
  • 52
  • 309
  • 320