So consider the following:
renderCharacterSheetInfo() {
let rows = [];
let elements = [];
let rowCount = 0;
if (!this.state.loading) {
const characterSheet = {
strength: this.state.characterSheet.base_strength,
dexterity: this.state.characterSheet.base_dexterity,
agility: this.state.characterSheet.base_agility,
intelligence: this.state.characterSheet.base_intelligence,
health: this.state.characterSheet.base_health,
gold: this.state.characterSheet.gold,
};
for(const key in characterSheet) {
if (rowCount < 3) {
elements.push(<div className="col-md-4" key={key}>{characterSheet[key]}</div>);
rowCount++;
} else {
rows.push(elements);
rowCount = 0;
elements = [];
elements.push(<div className="col-md-4" key={key}>{characterSheet[key]}</div>);
}
}
}
console.log(rows);
}
What I am attempting to do is loop through the characterSheet object and create an array, rows, of arrays: [[3 divs], [3 divs]].
Whats happening is, in the console, [[3 divs]] it loops though and creates the divs for the first three keys, but not the last three keys.
I am sure this is overly complicated, but Im not sure what to do here.
- Expected:
[[3 divs], [3 divs]] - Actual:
[[3 divs]]