votes = {
const nyTimesRes = await (
await fetch(
"https://static01.nyt.com/elections-assets/pages/data/feeds/96c3e55a-4c13-4585-b5f6-78f9de0ec96e/pres-county-data/2024-11-05.json"
)
).json();
return new Map(
_.flatten(
nyTimesRes["data"].map((state) =>
state["reporting_units"]
.filter((reportingUnit) => reportingUnit.fips_county)
.map((reportingUnit) => ({
id: `${reportingUnit.fips_state}${reportingUnit.fips_county}${
reportingUnit.fips_suffix ?? ""
}`,
count: {
total: reportingUnit.total_votes,
dem:
reportingUnit.candidates.find(
(candidate) => candidate.nyt_id == "harris-k"
)?.votes?.total ?? 0,
gop:
reportingUnit.candidates.find(
(candidate) => candidate.nyt_id == "trump-d"
)?.votes?.total ?? 0
}
}))
.map((result) => [
result.id,
{
...result,
percent: {
dem: result.count.dem / result.count.total,
gop: result.count.gop / result.count.total
},
two_party_ratio:
result.count.dem / (result.count.dem + result.count.gop)
}
])
)
)
);
}