Immutable api example
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的更多相关文章
- [Angular] Http Custom Headers and RequestOptions
updatePassenger(passenger: Passenger): Observable<Passenger> { let headers = new Headers({ 'Co ...
- Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow pip命令
引言: Tensorflow大名鼎鼎,这里不再赘述其为何物.这里讲描述在安装python包的时候碰到的“No matching distribution found for tensorflow”,其 ...
- immutable日常操作之深入API
写在前面 本文只是个人在熟悉Immutable.js的一些个人笔记,因此我只根据我自己的情况来熟悉API,所以很多API并没有被列举到,比如常规的push/map/filter/reduce等等操作, ...
- [转] Immutable 常用API简介
本文主要整理了Immutable.js常用API的使用. Immutable 是什么? 关于Immutable的定义,官方文档是这样说的: Immutable data encourages pure ...
- immutable.js 在React、Redux中的实践以及常用API简介
immutable.js 在React.Redux中的实践以及常用API简介 学习下 这个immutable Data 是什么鬼,有什么优点,好处等等 mark : https://yq.aliyu ...
- Immutable 常用API简介
本文主要整理了Immutable.js常用API的使用. Immutable 是什么? 关于Immutable的定义,官方文档是这样说的: Immutable data encourages pure ...
- [转载]Java 8 日期&时间 API
Java 8 日期和时间 声明 本文转自http://www.journaldev.com/2800/java-8-date-localdate-localdatetime-instant,以mark ...
- Spark笔记:复杂RDD的API的理解(下)
本篇接着谈谈那些稍微复杂的API. 1) flatMapValues:针对Pair RDD中的每个值应用一个返回迭代器的函数,然后对返回的每个元素都生成一个对应原键的键值对记录 这个方法我最开始接 ...
- Guava库介绍之集合(Collection)相关的API
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是我写的Google开源的Java编程库Guava系列之一,主要介 ...
随机推荐
- java学习笔记
最近在学习JAVA,算得上入门,因为本身是C#程序员,所以也入门也比较快 先打开说一下环境安装吧 下载地址 http://www.oracle.com/technetwork/java/javase/ ...
- mac 安装nginx
首先准备工作,打开mac终端 1.安装brew 输入命令 curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar x ...
- NYOJ题目27水池数目
--------------------------------------------- 这道题有点坑,也怪我总是有点马虎,按照正常人的思维0是表示有水池啊竟然是1表示有水池,最坑的是写反了竟然还能 ...
- PHP操作数据库
一.PHP连接到MySQL // //比较规范的写法是地址,登录名,密码这样写,比较安全 define("DB_HOST", 'localhost'); define('DB_US ...
- Sql Server 中锁的概念
锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏 ...
- thinkphp设置session有效时间
thinkphp的框架文件 ThinkPHP/Common/functions.php function session(){ 在这个方法中找到 thinkphp .1版 if(isset($name ...
- NSDateFormatter 相关理解
Formatter译为格式,相应的NSDateFormatter就相当于是NSDate的转换类,将NSDate转换为另一种格式,或转换回来.NSDate没有自己的输出,需要借助NSDateFormat ...
- 将Matlab中的矩阵输出到txt文件
将矩阵输出到txt文件中的方法,遍寻网络,始见真经!!! fid=fopen('C:Documents and Settingscleantotal.ped','wt');%写入文件路径 matrix ...
- 常用的Meta标签写法和作用
页面关键词 <meta name="keywords" content="your tags" /> 页面描述 <meta name=&quo ...
- iOS-Runtime知识点整理
本文目录 1.Runtime简介 2.Runtime相关的头文件 3.技术点和应用场景 3_1.获取属性\成员变量列表 3_2.交换方法实现 3_3.类\对象的关联对象,假属性 3_4.动态添加方法, ...