treeData = {
const root = {
name: "",
votes: 0,
votesD: totalD,
votesR: totalR,
pruned: false
};
function buildTree(node, depth) {
if (depth < contested.length && !winner(node)) {
const state = contested[depth];
node.children = [
{
name: state.name,
shortname: state.shortname,
party: "D",
votes: state.votes,
votesD: node.votesD + state.votes,
votesR: node.votesR,
pruned:
node.pruned ||
(decided.has(state.name) && decided.get(state.name) === "R")
},
{
name: state.name,
shortname: state.shortname,
party: "R",
votes: state.votes,
votesD: node.votesD,
votesR: node.votesR + state.votes,
pruned:
node.pruned ||
(decided.has(state.name) && decided.get(state.name) === "D")
}
];
node.children.forEach(child => buildTree(child, depth + 1));
}
return node;
}
return buildTree(root, 0);
}