18 lines
460 B
JavaScript
18 lines
460 B
JavaScript
export default function spellsWithSubheaders(spells = []){
|
|
let result = [];
|
|
let lastSpell = undefined;
|
|
let sortedSpells = [...spells].sort((a, b) => a.level - b.level)
|
|
sortedSpells.forEach(spell => {
|
|
if (spell.isSubheader) return;
|
|
if (!lastSpell || spell.level > lastSpell.level){
|
|
result.push({
|
|
isSubheader: true,
|
|
level: spell.level,
|
|
});
|
|
}
|
|
result.push(spell);
|
|
lastSpell = spell;
|
|
});
|
|
return result;
|
|
}
|