Link to CodeWars problem
我需要统计会议中所有人的分数。如果他们的分数小于等于5,则返回“立即离开!”。否则,返回“尼斯工作冠军!”meet
作为对象传递:
{
tim: 0,
jim: 2,
randy: 0,
sandy: 7,
andy: 0,
katie: 5,
laura: 1,
saajid: 2,
alex: 3,
john: 2,
mr: 0
}
如果
meet
中的人是boss
,他们的分数将加倍。 (我认为这是我现在遇到的问题-他们的分数没有加倍)。幸福等级是房间的总分/人数。
这是我尝试过的方法,它通过了CodeWars上的76/103测试。但是我不知道我在做什么错。
function outed(meet, boss) {
let values = [];
for (let i in meet) {
let score = meet[i];
if (i === boss) {
values.push(score * 2);
}
values.push(score);
}
let sumOfValues = values.reduce((previousValue, currentValue) => previousValue + currentValue);
let happinessRating = (sumOfValues / values.length);
if (happinessRating <= 5) {
return "Get Out Now!";
}
return "Nice Work Champ!";
}
帮助赞赏!
最佳答案
您要两次将boss的值添加到数组中(一次加倍,一次为面值)。您只需要在此处添加else
:
if (i === boss) {
values.push(score * 2);
}
else {
values.push(score);
}
关于javascript - JavaScript-对象中键值的总和,一个值加倍,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56093641/