Immutable 是 Facebook 开发的不可变数据集合。不可变数据一旦创建就不能被修改,是的应用开发更简单,允许使用函数式编程技术,比如惰性评估。Immutable JS 提供一个惰性 Sequence,允许高效的队列方法链,类似 map 和 filter ,不用创建中间代表。 immutable 通过惰性队列和哈希映射提供 Sequence, Range, Repeat, Map, OrderedMap, Set 和一个稀疏 Vector。 Immutable.js 3.7.0 发布,现已提供下载:https://github.com/facebook/immutable-js/archive/3.7.0.zip。 新增功能: merge() family of functions now get the currently merging key as a 3rd argument, in case merge strategy should alter based on key. IndexedCursor now has push(), pop(), unshift() and shift() to more closely mirror List. Records initialize lazily. Creating a new Record type with Record({foo:"bar"}) involves a small bit of work. For applications with a large amount of Records, lazy initialization should help startup times. Maps can now be constructed by a List of Lists instead of only a List of Arrays. toString() prints Map string keys in quotes. 修复内容: is() allows usage of valueOf to return primitives without recursing or encountering a reference error. merge()/union() work inside withMutations when initial collection is empty. #405 Producing subcursors using cursor.cursor() now returns a proper typed cursor. #381 When a Record is passed to the same Record creation function, it's now returned directly. Ensure Records toString() correctly. #383 Iterating over a sliced Seq can no longer cause an infinite recursion. #394 Ensure we don't throw when hashing non-extensible object in a modern environment. Fix issue where non-existent function could be called if a collection doesn't have a size. Immutable.js 3.7.0 发布,不可变数据集合下载地址