I'm currently setting up this js exercise here however it seems it's not working corretcly as I got the duplication of all the entries, I cannot understand why.
Here's the code:
export function updateScore(scoreBoard, player, points) {
scoreBoard[player] = scoreBoard[player] + points;
return scoreBoard;
}
export function applyMondayBonus(scoreBoard) {
Object.keys(scoreBoard).forEach((element) =>{
updateScore(scoreBoard,element,scoreBoard[element] + 100)
} );
return scoreBoard;
}
Once I run the code: I got this output
Object {
- "Amil Pastorius": 445,
- "Jesse Johnson": 222,
- "Min-seo Shin": 119,
+ "Amil Pastorius": 790,
+ "Jesse Johnson": 344,
+ "Min-seo Shin": 138,
}
Instead of this
{
'Amil Pastorius': 445,
'Min-seo Shin': 119,
'Jesse Johnson': 222,
};
Thanks in advance
EDIT: My bad, that was a logical error as @Ivar said, I'm passing scoreBoard[element] + 100 as a parameter, then again use scoreBoard[element] in scoreBoard[player] + points.
You could very simply write:
export function applyMondayBonus(scoreBoard = {}){
Object.keys(scoreBoard).forEach(player => {
scoreBoard[player] += 100
})
return scoreBoard
}
My advice would be to just write the function logic directly in the forEach
loop. For such small and direct logic, a separate function could be a hassle.