From 9f1769a0379263e48423ae4e93eb7a7aef781d7c Mon Sep 17 00:00:00 2001 From: Oleksandr Chumakov Date: Mon, 14 Aug 2023 21:41:13 +0300 Subject: [PATCH 1/2] add task solution --- src/transformState.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/transformState.js b/src/transformState.js index a1eaa0640..66fc129f1 100644 --- a/src/transformState.js +++ b/src/transformState.js @@ -5,7 +5,25 @@ * @param {Object[]} actions */ function transformState(state, actions) { - // write code here + actions.forEach(action => { + switch (action.type) { + case 'addProperties': + Object.assign(state, action.extraData); + break; + case 'removeProperties': + action.keysToRemove.forEach(key => { + delete state[key]; + }); + break; + case 'clear': + for (const key in state) { + delete state[key]; + } + break; + default: + break; + } + }); } module.exports = transformState; From 69c868839eded7ddd246d87eaae86d5da045f2c7 Mon Sep 17 00:00:00 2001 From: Oleksandr Chumakov Date: Tue, 15 Aug 2023 13:11:22 +0300 Subject: [PATCH 2/2] add task solution --- src/transformState.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/transformState.js b/src/transformState.js index 66fc129f1..0471c03e6 100644 --- a/src/transformState.js +++ b/src/transformState.js @@ -5,17 +5,21 @@ * @param {Object[]} actions */ function transformState(state, actions) { + const ADD_PROPERTIES = 'addProperties'; + const REMOVE_PROPERTIES = 'removeProperties'; + const CLEAR = 'clear'; + actions.forEach(action => { switch (action.type) { - case 'addProperties': + case ADD_PROPERTIES: Object.assign(state, action.extraData); break; - case 'removeProperties': + case REMOVE_PROPERTIES: action.keysToRemove.forEach(key => { delete state[key]; }); break; - case 'clear': + case CLEAR: for (const key in state) { delete state[key]; }