From 561c80cc742ad40d33a70d680ab00480c5981de2 Mon Sep 17 00:00:00 2001 From: Nikita Date: Mon, 7 Aug 2023 16:39:15 +0200 Subject: [PATCH 1/3] solution --- src/transformState.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/transformState.js b/src/transformState.js index a1eaa0640..de4bd938a 100644 --- a/src/transformState.js +++ b/src/transformState.js @@ -6,6 +6,36 @@ */ function transformState(state, actions) { // write code here + for (const action of actions) { + const { type, extraData, keysToRemove } = action; + + switch (type) { + case 'addProperties': + for (const key in extraData) { + state[key] = extraData[key]; + } + break; + + case 'removeProperties': + if (keysToRemove) { + for (const key of keysToRemove) { + if (state.hasOwnProperty(key)) { + delete state[key]; + } + } + } + break; + + case 'clear': + for (const key in state) { + delete state[key]; + } + break; + + default: + throw new Error(`Unknown action type: ${type}`); + } + } } module.exports = transformState; From 0c829be02aa29d97924376d861d73206e0e72088 Mon Sep 17 00:00:00 2001 From: Nikita Date: Mon, 7 Aug 2023 17:05:54 +0200 Subject: [PATCH 2/3] develop --- src/transformState.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/transformState.js b/src/transformState.js index de4bd938a..c9ad99422 100644 --- a/src/transformState.js +++ b/src/transformState.js @@ -7,21 +7,23 @@ function transformState(state, actions) { // write code here for (const action of actions) { - const { type, extraData, keysToRemove } = action; + const { type } = action; switch (type) { case 'addProperties': + const { extraData } = action; + for (const key in extraData) { state[key] = extraData[key]; } break; case 'removeProperties': + const { keysToRemove } = action; + if (keysToRemove) { for (const key of keysToRemove) { - if (state.hasOwnProperty(key)) { - delete state[key]; - } + delete state[key]; } } break; From 88694856d0f1dec055c790ff951aa00abd144fbb Mon Sep 17 00:00:00 2001 From: Nikita Date: Mon, 7 Aug 2023 17:28:26 +0200 Subject: [PATCH 3/3] solution --- src/transformState.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/transformState.js b/src/transformState.js index c9ad99422..fd36429f9 100644 --- a/src/transformState.js +++ b/src/transformState.js @@ -21,10 +21,8 @@ function transformState(state, actions) { case 'removeProperties': const { keysToRemove } = action; - if (keysToRemove) { - for (const key of keysToRemove) { - delete state[key]; - } + for (const key of keysToRemove) { + delete state[key]; } break;