Actualmente estoy configurando este ejercicio js aquí , sin embargo, parece que no funciona correctamente ya que obtuve la duplicación de todas las entradas, no puedo entender por qué.
Aquí está el código:
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; }
Una vez que ejecuto el código: obtuve esta salida
Object { - "Amil Pastorius": 445, - "Jesse Johnson": 222, - "Min-seo Shin": 119, + "Amil Pastorius": 790, + "Jesse Johnson": 344, + "Min-seo Shin": 138, }
En lugar de esto
{ 'Amil Pastorius': 445, 'Min-seo Shin': 119, 'Jesse Johnson': 222, };
Gracias por adelantado
EDITAR: Mi error, fue un error lógico como dijo @Ivar, estoy pasando scoreBoard[element] + 100 como parámetro, luego vuelvo a usar scoreBoard[element] en scoreBoard[player] + puntos.
Podrías escribir muy simplemente:
export function applyMondayBonus(scoreBoard = {}){ Object.keys(scoreBoard).forEach(player => { scoreBoard[player] += 100 }) return scoreBoard }
Mi consejo sería simplemente escribir la lógica de la función directamente en el bucle forEach
. Para una lógica tan pequeña y directa, una función separada podría ser una molestia.