OSDN Git Service

Regular updates
[twpd/master.git] / immutable.js.md
1 ---
2 title: Immutable.js
3 category: JavaScript libraries
4 layout: 2017/sheet
5 ---
6
7 ### Maps
8
9 ```js
10 var map = Immutable.Map({ a: 1, b: 2, c: 3 })
11 ```
12
13 ```js
14 map
15   .set('b', 50)
16   .get('b') // 50
17 ```
18
19 ### Lists
20
21 ```js
22 var list = Immutable.List.of(1, 2)
23
24 list
25   .push(3, 4, 5)
26   .unshift(0)
27   .concat(list2, list3)
28   .get(0)
29   .size
30 ```
31
32 ### Nested maps
33
34 ```js
35 var nested = Immutable.fromJS({ user: { profile: { name: 'John' } } })
36
37 nested
38   // Update
39   .mergeDeep({ user: { profile: { age: 90 } } })
40   .setIn([ 'user', 'profile', 'name' ], 'Jack')
41   .updateIn([ 'user', 'profile', 'name' ], (s) => s.toUpperCase())
42
43   // Get
44   .getIn(['user', 'profile', 'name']) // 'JACK'
45 ```