diff --git a/src/transformStateWithClones.js b/src/transformStateWithClones.js index 96d4f7e7e..a432d26f1 100644 --- a/src/transformStateWithClones.js +++ b/src/transformStateWithClones.js @@ -8,6 +8,31 @@ */ function transformStateWithClones(state, actions) { // write code here + let currentState = { ...state }; + const result = []; + + for (const i of actions) { + let newState = { ...currentState }; + + if (i.type === 'addProperties') { + Object.assign(newState, i.extraData); + } + + if (i.type === 'removeProperties') { + for (const j of i.keysToRemove) { + delete newState[j]; + } + } + + if (i.type === 'clear') { + newState = {}; + } + + result.push(newState); + currentState = newState; + } + + return result; } module.exports = transformStateWithClones;