JavaScript - Object 中的键值总和,一个值翻倍
JavaScript - Sum of Key Values in Object, One Value Gets Doubled
我需要统计一下所有参加会议的人的分数。如果他们的分数 <= 5,return "Get Out Now!" 否则,return "Nice Work Champ!"
meet
作为 object:
传入
{
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!";
}
感谢帮助!
除了双推值之外,您还为数组增加了一个过多的值。您最好通过使用总和值减少键来直接添加值,然后再从中获取平均值。
var keys = Object.keys(meet);
return keys.reduce((sum, key) => s + (key === boss ? 2 : 1) * meet[key], 0) / keys.length;
您将老板的价值添加到数组中两次(一次加倍,一次按面值)。您只需要在此处添加 else
:
if (i === boss) {
values.push(score * 2);
}
else {
values.push(score);
}
我需要统计一下所有参加会议的人的分数。如果他们的分数 <= 5,return "Get Out Now!" 否则,return "Nice Work Champ!"
meet
作为 object:
{
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!";
}
感谢帮助!
除了双推值之外,您还为数组增加了一个过多的值。您最好通过使用总和值减少键来直接添加值,然后再从中获取平均值。
var keys = Object.keys(meet);
return keys.reduce((sum, key) => s + (key === boss ? 2 : 1) * meet[key], 0) / keys.length;
您将老板的价值添加到数组中两次(一次加倍,一次按面值)。您只需要在此处添加 else
:
if (i === boss) {
values.push(score * 2);
}
else {
values.push(score);
}