immutable.js: update

This commit is contained in:
Rico Sta. Cruz 2017-10-27 12:50:39 +08:00
parent d557761007
commit d5a0603436
No known key found for this signature in database
GPG Key ID: CAAD38AE2962619A
1 changed files with 9 additions and 9 deletions

View File

@ -1,24 +1,22 @@
--- ---
title: Immutable.js title: Immutable.js
category: JavaScript libraries category: JavaScript libraries
layout: default-ad layout: 2017/sheet
--- ---
```js ### Maps
var Immutable = require('immutable')
```
## Maps
```js ```js
var map = Immutable.Map({ a: 1, b: 2, c: 3 }) var map = Immutable.Map({ a: 1, b: 2, c: 3 })
```
```js
map map
.set('b', 50) .set('b', 50)
.get('b') // 50 .get('b') // 50
``` ```
## Lists ### Lists
```js ```js
var list = Immutable.List.of(1, 2) var list = Immutable.List.of(1, 2)
@ -31,15 +29,17 @@ list
.size .size
``` ```
## Nested maps ### Nested maps
```js ```js
var nested = Immutable.fromJS({ user: { profile: { name: 'John' } } }) var nested = Immutable.fromJS({ user: { profile: { name: 'John' } } })
nested nested
// Update
.mergeDeep({ user: { profile: { age: 90 } } }) .mergeDeep({ user: { profile: { age: 90 } } })
.setIn([ 'user', 'profile', 'name' ], 'Jack') .setIn([ 'user', 'profile', 'name' ], 'Jack')
.updateIn([ 'user', 'profile', 'name' ], (s) => s.toUpperCase()) .updateIn([ 'user', 'profile', 'name' ], (s) => s.toUpperCase())
// Get
.getIn(['user', 'profile', 'name']) // 'JACK' .getIn(['user', 'profile', 'name']) // 'JACK'
``` ```