这篇文章是 immutable-js
一些操作的整理, 目前只有基本的操作:
文档请查看: http://facebook.github.io/immutable-js/docs/
使用过程中遇到的写法我会不会增加在后边.
JavaScript 当中不可变数据有点不适应, 需要借鉴一些 Haskell 中的内容:
http://learnyouahaskell.com/chapters
https://leanpub.com/purescript/read生成不可变对象
js
arr = [1,2] obj = {a: 1} iarr = Immutable.fromJS(arr) iobj = Immutable.fromJS(obj)
生成 js
js
iarr.toJS()
js
Immutable.List()
负数也是能运行的
js
iarr.get(0) iarr.get(-1)
js
iarr.sort(function(a, b){ if (a < b) return -1; if (a > b) return 1; return 0; })
返回 false
会终止遍历
iarr.forEach(function(a, b) { console.log(a, b) return true })
或者 map 属性
js
iobj.get('a')
js
oc = oa.merge(ob)
js
oc = Immutable.fromJS({key: null}) oc.has('key')
js
od = Immutable.fromJS({a: 1, b: 2}) od.filter(function(value, key) { return value === 1 })