You could currently do
```js
object.child.property /= 5
```

with destructuring:
```js
const {child: {subchild}, child} = state;

return {
  ...state,
  child: {
    ...child,
    subchild: {
      ...subchild,
      property: subchild.property + 1
    }
  }
}
```

or do-expressions:
```js
return {
  ...state,
  child: do {
    const {child} = state;
    return {
      ...child,
      subchild: do {
        const {subchild} = child;
        return {
          ...subchild,
          property: subchild.property + 1
        };
      }
    };
  }
}
```

note: your `property: itself + 1` looks incorrect, since you probably mean
to increment the `property` property

On Fri, Sep 6, 2019 at 9:36 AM Imeian . <[email protected]> wrote:

> When we need to change a value using the old value :
>
> variable = itself + 5 // instead of
> variable = variable + 5
>
> object.child.property = itself / 5 // instead of
> object.child.property = object.child.property / 5
>
> Changing a value in nested objects is a pain, like Redux states for eg.
>
> return {
>     ...state,
>     child: {
>         ...state.child,
>         subchild: {
>             ...state.child.subchild,
>             property: state.child.subchild.property + 1
>         }
>     }
> }
>
> would then be
>
> return {
>     ...state,
>     child: {
>         ...itself,
>         subchild: {
>             ...itself,
>             property: itself + 1
>         }
>     }
> }
>
>
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to