转载

笔记 immutable-js 基本操作(未完成)

这篇文章是 immutable-js 一些操作的整理, 目前只有基本的操作:

文档请查看: http://facebook.github.io/immutable-js/docs/

使用过程中遇到的写法我会不会增加在后边.

JavaScript 当中不可变数据有点不适应, 需要借鉴一些 Haskell 中的内容:

http://learnyouahaskell.com/chapters

https://leanpub.com/purescript/read

生成不可变对象

jsarr = [1,2] obj = {a: 1} iarr = Immutable.fromJS(arr) iobj = Immutable.fromJS(obj) 

生成 js

jsiarr.toJS() 

List

jsImmutable.List() 
  • 获取数组元素

负数也是能运行的

jsiarr.get(0) iarr.get(-1) 
  • 排序
jsiarr.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

或者 map 属性

jsiobj.get('a') 
  • 合并对象
jsoc = oa.merge(ob) 
  • 属性
jsoc = Immutable.fromJS({key: null}) oc.has('key') 
  • 过滤 Map
jsod = Immutable.fromJS({a: 1, b: 2}) od.filter(function(value, key) {  return value === 1 }) 
正文到此结束
Loading...