gpt4 book ai didi

javascript - 如何改进我的代码(连接函数中的参数) - JavaScript 初学者

转载 作者:行者123 更新时间:2023-12-01 15:59:10 26 4
gpt4 key购买 nike

我开始学习如何编码,并创建了一个简单的程序来对测试进行评分。

问题是我必须为每个“测试”更改四个参数才能使代码正常工作。我可以更改什么以便只需要更改两个?

我希望我能解释清楚,英语不是我的母语。对于这个不具描述性的标题感到抱歉,但我不知道如何表达它。

function score (pointsObt, pointsTest) {
return 100 / pointsTest * pointsObt;
};

function verdict (pointsObt, pointsTest){
if (score (pointsObt, pointsTest) >= 75) {
return 'Yay, you did it'
}
else {
return "You did it! But bad."
}
};

console.log (verdict(50, 50));
console.log ('Your score: ' + score(50, 50));

最佳答案

您可以使 verdict 函数在一个数据结构中同时返回分数和结论。这可以是具有两个值的数组或具有两个属性的普通对象。以下是后一个想法的运作方式:

function score (pointsObt, pointsTest) {
return 100 / pointsTest * pointsObt;
};

function verdict (pointsObt, pointsTest) {
let percentage = score (pointsObt, pointsTest);
let message = percentage >= 75 ? "Yay, you did it" : "You did it! But bad.";
return { percentage, message };
};

let { percentage, message } = verdict(50, 50);
console.log (message);
console.log ('Your score: ' + percentage);

说明

我将 if...else 构造更改为使用 ternary operator 的表达式(?:)。这样您就可以完成一项作业,同时区分两种结果。

return 语句中,创建一个新对象,该对象具有两个属性,这两个属性与同名变量的值完全对应(这是 EcmaScript 2015 中引入的 short object literal notation)

主代码中的调用者可以从调用中获取该对象。我用过destructuring assignment立即从返回的对象中提取两个属性到两个与对象属性同名的变量中。

优点

在您的实现中,您不仅两次提供相同的参数,而且——可能更重要的是——您计算了两次相同的分数。在建议的解决方案中,score 不再调用两次,而是只调用一次。

关于javascript - 如何改进我的代码(连接函数中的参数) - JavaScript 初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62965558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com