如何构建异常处理程序



我需要处理"空"是"/"否";作为=到0的exeption和具有"0"的字符串;4〃;作为点。当它们被订购时,应该按照输入的方式打印出来。我试着用for循环来达到分数,但没用。如何构建异常处理程序?

function reorder(people) {
const arr = people;
for (let i in arr) {
for (let a in i.scores  ) {
if (a === null || a === "yes" || a === "no") {
a = 0;
} else if (typeof a === "string") {
a = Number(a);
}
}
}
const sorted = arr
.map((e) => ({
...e,
sum: e.scores.reduce((total, score) => total + score, 0),
}))
.sort((a, b) => b.sum - a.sum || a.name.localeCompare(b.name))
.map(({ sum, ...e }) => e);
return sorted;
}
const input = [
{ name: "Joe", scores: [1, 2, "4.1"] },
{ name: "Jane", scores: [1, null, 3] },
{ name: "John", scores: [1, 2, 3] },
];
const output = reorder(input);
console.log(output);

您可以调整reduce回调并将分数转换为数字或取零进行加法。

function reorder(people) {
return people
.map(e => ({ ...e, sum: e.scores.reduce((total, score) => total + (+score || 0), 0) }))
.sort((a, b) => b.sum - a.sum || a.name.localeCompare(b.name))
.map(({ sum, ...e }) => e);
}
const
input = [{ name: "Joe", scores: [1, 2, "4.1"] }, { name: "Jane", scores: [1, null, 3] }, { name: "John", scores: [1, 2, 3] }],
output = reorder(input);
console.log(output);
.as-console-wrapper { max-height: 100% !important; top: 0; }

最新更新