var temp=[{name:"kitty",age:31},{name:"ff",age:22},{name:"kitty",age:44}]
var temp1={
ct1:{name:"kitty",age:31},
ct2:{name:"ff",age:22},
ct3:{name:"kitty",age:44}
}
let hh = Immutable.fromJS(temp); //list
let hh1=Immutable.fromJS(temp1) //map
.reverse: 倒排 ,支持list ,map
		let reverse=hh.reverse()
//[{"name":"kitty","age":44},{"name":"ff","age":22},{"name":"kitty","age":31}] let resverse1=hh1.reverse()
//{"ct3":{"name":"kitty","age":44},"ct2":{"name":"ff","age":22},"ct1":{"name":"kitty","age":31}}
.groupBy:分组  支持 list 和 map
		let groupBy=hh.groupBy(function(a,b,c){
return a.get("name")+"_ic"
})
//{"kitty_ic":[{"name":"kitty","age":31},{"name":"kitty","age":44}],"ff_ic":[{"name":"ff","age":22}]} let groupBy1=hh1.groupBy(function(a,b,c){
return a.get("name")+"_ic"
})
//{"kitty_ic":{"ct1":{"name":"kitty","age":31},"ct3":{"name":"kitty","age":44}},"ff_ic":{"ct2":{"name":"ff","age":22}}}

.sortBy:排序  支持 list 和 map

		let sortBy=hh.sortBy(function(a,b,c,d){
return -1*a.get("age")
})
//[{"name":"kitty","age":44},{"name":"kitty","age":31},{"name":"ff","age":22}]
let sortBy1=hh1.sortBy(function(a,b,c,d){
return -1*a.get("age")
})
//{"ct3":{"name":"kitty","age":44},"ct1":{"name":"kitty","age":31},"ct2":{"name":"ff","age":22}}

 

.filter:返回通过真值检测的元素值  支持 list 和 map

		let filter=hh.filter(function(a,b,c){
if(a.get("name")=="ff"){
return true
}
})//[{"name":"ff","age":22}] let filter1=hh1.filter(function(a,b,c){
if(a.get("name")=="ff"){
return true
}
})//{"ct2":{"name":"ff","age":22}}

 

.filterNot:返回不通过真值检测的元素值  支持 list 和 map

	// filterNot:返回不通过真值检测的元素值  支持 list 和 map
let filterNot=hh.filterNot(function(a,b,c){
if(a.get("name")=="ff"){ return true }
})//[{"name":"kitty","age":31},{"name":"kitty","age":44}] let filterNot1=hh1.filterNot(function(a,b,c){
if(a.get("name")=="ff"){ return true }
})//{"ct1":{"name":"kitty","age":31},"ct3":{"name":"kitty","age":44}}

  

.map 支持 list 和 map

	//map 支持 list 和 map
let map=hh.map((a,b,c)=>{
return a.get("name")
})//["kitty","ff","kitty"] let map1=hh1.map((a,b,c)=>{
return a.get("name")
})//{"ct1":"kitty","ct2":"ff","ct3":"kitty"}

  

.merge

//merge
let tt1={ct1:{name:"",age:""},ct4:{name:"qq",age:42}}
let merge1=hh1.merge(tt1)
//{"ct1":{"name":"","age":""},"ct2":{"name":"ff","age":22},"ct3":{"name":"kitty","age":44},"ct4":{"name":"qq","age":42}}

 

.mergeDeep 


	//mergeDeep
let ttDeep=[{name:"changed",qq:"add"},{},{},{qq:"add"}]
let mergeDeep=hh.mergeDeep(ttDeep)
//[{"name":"changed","age":31,"qq":"add"},{"name":"ff","age":22},{"name":"kitty","age":44},{"qq":"add"}] let ttDeep1={ct1:{name:"changed",qq:"add"},ct4:{name:"add"}}
let mergeDeep1=hh1.mergeDeep(ttDeep1) //{"ct1":{"name":"","age":""},"ct2":{"name":"ff","age":22},"ct3":{"name":"kitty","age":44},"ct4":{"name":"qq","age":42}}

  

Immutable api example的更多相关文章

  1. [Angular] Http Custom Headers and RequestOptions

    updatePassenger(passenger: Passenger): Observable<Passenger> { let headers = new Headers({ 'Co ...

  2. Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow pip命令

    引言: Tensorflow大名鼎鼎,这里不再赘述其为何物.这里讲描述在安装python包的时候碰到的“No matching distribution found for tensorflow”,其 ...

  3. immutable日常操作之深入API

    写在前面 本文只是个人在熟悉Immutable.js的一些个人笔记,因此我只根据我自己的情况来熟悉API,所以很多API并没有被列举到,比如常规的push/map/filter/reduce等等操作, ...

  4. [转] Immutable 常用API简介

    本文主要整理了Immutable.js常用API的使用. Immutable 是什么? 关于Immutable的定义,官方文档是这样说的: Immutable data encourages pure ...

  5. immutable.js 在React、Redux中的实践以及常用API简介

    immutable.js 在React.Redux中的实践以及常用API简介 学习下 这个immutable Data 是什么鬼,有什么优点,好处等等 mark :  https://yq.aliyu ...

  6. Immutable 常用API简介

    本文主要整理了Immutable.js常用API的使用. Immutable 是什么? 关于Immutable的定义,官方文档是这样说的: Immutable data encourages pure ...

  7. [转载]Java 8 日期&时间 API

    Java 8 日期和时间 声明 本文转自http://www.journaldev.com/2800/java-8-date-localdate-localdatetime-instant,以mark ...

  8. Spark笔记:复杂RDD的API的理解(下)

    本篇接着谈谈那些稍微复杂的API. 1)   flatMapValues:针对Pair RDD中的每个值应用一个返回迭代器的函数,然后对返回的每个元素都生成一个对应原键的键值对记录 这个方法我最开始接 ...

  9. Guava库介绍之集合(Collection)相关的API

    作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是我写的Google开源的Java编程库Guava系列之一,主要介 ...

随机推荐

  1. 快速得出e指数的算法

    , b, c = , d, e = , f[]; int main() { for (;b - c;) f[b++] = gap; , c;c-=, printf("%.4d ", ...

  2. iOS应用文件夹

    IOS5多了一个比较重要的功能iCloud,但是同时也出现一个问题,很多的APP都把很大量的数据存在APP底下的Documents(/Documents )文件夹里面,这样苹果会reject掉你的AP ...

  3. HTML5 声明兼容IE的写法(转载)

    HTML5 声明兼容IE的写法(转载)   1 2 3 4 5 6 7 8 9 10 <!DOCTYPE html> <!--[if IE]> <meta http-eq ...

  4. 深入理解MVC模式

    一,什么是MVC模式 该模式是一种软件设计典范,他把软件系统划分为三个基本部分:模型层(Model).视图层(View).控制器(Controller) *Model(模型)表示应用程序核心(比如数据 ...

  5. Blender使用基础

    快捷键 -- 鼠标放在“大纲视图” -- .(小键盘) 定位到所选对象(该键的英文为period) -- 鼠标放在“3D视图” -- n  打开3D视图右面属性面板(把鼠标放在面板上,按F5可以左右切 ...

  6. Power BI FAQ

    关于Power BI,最近一直想写点什么,但是也想不到写什么.直到前几天,有个朋友在qq加我,问了我好几个问题,我发现都是一些很有代表性的问题,所以都记录了下来,特意整理了一下分享出来,希望能帮到更多 ...

  7. Linux服务器init 5启动图形界面,报错Retrigger failed udev events的解决方法

    1.开启linux系统的桌面环境,使用startx未成功,报如下错误: 提示:Retrigger failed udev events [root@ /]# startx xauth: creatin ...

  8. js整理4

    异步处理 错误处理 同步 function A() { B(); } function B() { C(); } function C() { throw new Error('something h ...

  9. Android 应用测试总结

    前提所有的功能分支已完成 启动:1. 启动入口:桌面正常启动,最近运行启动,所有程序列表中启动,锁屏快捷启动2. 其他入口:从其他程序开启应用,从外部以文件形式打开应用(如果有)3. 退回:从其他程序 ...

  10. 云虚拟主机开源 DedeCMS 安装指南

    1. 获取主机 FTP 和 数据库 信息 1.1 FTP 信息 登录主机管理后台,在 站点信息 中获取到 FTP 和 数据库 的账号密码,连接地址. 如下图所示: 如果忘记密码,可以在这里进行 重置密 ...