data = {
const attachment = await FileAttachment("judges.csv").text();
const dataRaw = d3.csvParse(attachment);
const dataFilteredConfirmationDate = dataRaw.filter(
d => d["Confirmation Date (1)"].length != 0
);
const dataProcessed = dataFilteredConfirmationDate.map(d => {
const terms = [];
for (let i = 1; i <= 6; i++) {
let termSingle = {};
if (d[`Court Type (${i})`].length > 0) {
termSingle["CourtType"] = d[`Court Type (${i})`];
termSingle["CourtName"] = d[`Court Name (${i})`];
termSingle["President"] = d[`Appointing President (${i})`];
termSingle["Party"] = d[`Party of Appointing President (${i})`];
termSingle["ConfirmationYear"] =
d[`Confirmation Date (${i})`].length > 0
? timeFormatterYear(timeParserDate(d[`Confirmation Date (${i})`]))
: "";
termSingle["TerminationYear"] =
d[`Termination Date (${i})`].length > 0
? timeFormatterYear(timeParserDate(d[`Termination Date (${i})`]))
: d[`Termination Date (${i})`].length <= 0 &&
d[`Senior Status Date (${i})`].length > 0
? timeFormatterYear(timeParserDate(d[`Senior Status Date (${i})`]))
: "";
if (d[`Confirmation Date (${i})`].length) {
termSingle["ConfirmationDate"] = timeParserDate(
d[`Confirmation Date (${i})`]
);
}
terms.push(termSingle);
}
}
d["TermsServed"] = terms;
return {
NID: d["nid"],
Name: nameFormatter(
d["First Name"],
d["Middle Name"],
d["Last Name"],
d["Suffix"]
),
NameParts: {
NameFirst: d["First Name"],
NameMiddle: d["Middle Name"],
NameLast: d["Last Name"],
NameSuffix: d["Suffix"]
},
Gender: d["Gender"],
Race: d["Race or Ethnicity"],
Terms: d["TermsServed"],
FirstYear: +d["TermsServed"][0]["ConfirmationYear"],
LastYear:
d["TermsServed"][d["TermsServed"].length - 1]["TerminationYear"]
.length > 0
? +d["TermsServed"][d["TermsServed"].length - 1]["TerminationYear"]
: 2020
};
});
return dataProcessed;
}