From a961bde0c2b3cad1dd1b04d44727b133e990163c Mon Sep 17 00:00:00 2001 From: Mykyta Date: Wed, 31 Dec 2025 12:51:04 +0100 Subject: [PATCH 1/2] solved task --- src/transformStateWithClones.js | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/transformStateWithClones.js b/src/transformStateWithClones.js index 96d4f7e7e..8da87e02b 100644 --- a/src/transformStateWithClones.js +++ b/src/transformStateWithClones.js @@ -7,7 +7,35 @@ * @return {Object[]} */ function transformStateWithClones(state, actions) { - // write code here + const stateCopy = []; + let current = { ...state }; + + for (const action of actions) { + const next = { ...current }; + + switch (action.type) { + case 'addProperties': + Object.assign(next, action.extraData); + break; + case 'removeProperties': + for (const key of action.keysToRemove) { + delete next[key]; + } + break; + case 'clear': + for (const key of Object.keys(next)) { + delete next[key]; + } + break; + default: + break; + } + + stateCopy.push(next); + current = next; + } + + return stateCopy; } module.exports = transformStateWithClones; From 4657517fb378579c0b448dc9982fc30bd1205a7d Mon Sep 17 00:00:00 2001 From: Mykyta Date: Wed, 31 Dec 2025 12:58:13 +0100 Subject: [PATCH 2/2] fixed code with menthor review --- src/transformStateWithClones.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/transformStateWithClones.js b/src/transformStateWithClones.js index 8da87e02b..9badbd296 100644 --- a/src/transformStateWithClones.js +++ b/src/transformStateWithClones.js @@ -7,7 +7,7 @@ * @return {Object[]} */ function transformStateWithClones(state, actions) { - const stateCopy = []; + const stateHistory = []; let current = { ...state }; for (const action of actions) { @@ -28,14 +28,14 @@ function transformStateWithClones(state, actions) { } break; default: - break; + throw new Error(`Unknown action type: ${action.type}`); } - stateCopy.push(next); + stateHistory.push(next); current = next; } - return stateCopy; + return stateHistory; } module.exports = transformStateWithClones;