cheatsheets/immutable.js.md

45 lines
652 B
Markdown
Raw Permalink Normal View History

2017-08-28 19:56:17 +00:00
---
title: Immutable.js
category: JavaScript libraries
---
2017-10-27 04:50:39 +00:00
### Maps
2017-08-28 19:56:17 +00:00
```js
var map = Immutable.Map({ a: 1, b: 2, c: 3 })
2017-10-27 04:50:39 +00:00
```
2017-08-28 19:56:17 +00:00
2017-10-27 04:50:39 +00:00
```js
2017-08-28 19:56:17 +00:00
map
.set('b', 50)
.get('b') // 50
```
2017-10-27 04:50:39 +00:00
### Lists
2017-08-28 19:56:17 +00:00
```js
var list = Immutable.List.of(1, 2)
list
.push(3, 4, 5)
.unshift(0)
.concat(list2, list3)
.get(0)
.size
```
2017-10-27 04:50:39 +00:00
### Nested maps
2017-08-28 19:56:17 +00:00
```js
var nested = Immutable.fromJS({ user: { profile: { name: 'John' } } })
nested
2017-10-27 04:50:39 +00:00
// Update
2017-08-28 19:56:17 +00:00
.mergeDeep({ user: { profile: { age: 90 } } })
.setIn([ 'user', 'profile', 'name' ], 'Jack')
.updateIn([ 'user', 'profile', 'name' ], (s) => s.toUpperCase())
2017-10-27 04:50:39 +00:00
// Get
2017-08-28 19:56:17 +00:00
.getIn(['user', 'profile', 'name']) // 'JACK'
```