Files
Randell Dawson 1494a50123 fix(guide): restructure curriculum guide articles (#36501)
* fix: restructure certifications guide articles
* fix: added 3 dashes line before prob expl
* fix: added 3 dashes line before hints
* fix: added 3 dashes line before solutions
2019-07-24 13:29:27 +05:30

53 lines
1.0 KiB
Markdown

---
title: Copy an Object with Object.assign
---
# Copy an Object with Object.assign
---
## Problem Explanation
The goal of this challenge is to enforce state immutability when state is an object.
---
## Hints
### Hint 1
Use the method ```Object.assign({}, obj1, obj2)``` in return. Pass ```state``` as obj1.
### Hint 2
The obj2 should be the updated ```{key: value}``` pair of your state.
---
## Solutions
<details><summary>Solution 1 (Click to Show/Hide)</summary>
```javascript
const defaultState = {
user: "CamperBot",
status: "offline",
friends: "732,982",
community: "freeCodeCamp"
};
const immutableReducer = (state = defaultState, action) => {
switch (action.type) {
case "ONLINE":
// to enforce state immutability, return a new state object using Object.assign() method
return Object.assign({}, state, { status: "online" });
default:
return state;
}
};
const wakeUp = () => {
return {
type: "ONLINE"
};
};
const store = Redux.createStore(immutableReducer);
```
</details>