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系列之一,主要介 ...
随机推荐
- .NET 强引用与弱引用
强引用 如果应用程序的代码可以访问一个正由该程序使用的对象,垃圾回收器就不能收集该对象, 那么,就认为应用程序对该对象具有强引用. 要建立强引用并重新使用该对象,请将 WeakRe ...
- IOS 非ARC开发内存管理的几条规则
关于ios内存管理.在开发过程中,内存管理很重要,我简单说明一下. 1.正确用法 UIView *v = [[UIView alloc] init]; //分配后引用计数为1 [self.view a ...
- SQL查询语句行转列横向显示
http://blog.163.com/dreamman_yx/blog/static/26526894201121595846270/
- 解决VS+opencv中Debug版本与Release版本lib切换的问题
Author: Maddock Date: 2015-03-26 09:34:48 问题来源:http://bbs.csdn.net/topics/390733725 PS: 按照上述方法做的时候,在 ...
- 【淘淘】Spring整合Quartz框架
我在外面工作实习的时候,我们做的项目是一个日报子系统,也就是定时定点为公司生成一些报表数据还有一些数据反馈.这时候我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.当时,我做 ...
- DS28E01芯片解密DS28E01-100单片机解密多少钱?
DS28E01芯片解密DS28E01-100单片机解密多少钱? DS28E01-100将1024位EEPROM与符合ISO/IEC 10118-3安全散列算法(SHA-1)的质询响应安全认证结合在一起 ...
- jQuery基础知识准备
一. 代码风格在jQuery程序中,不管是页面元素的选择.内置的功能函数,都是美元符号"$"来起始的.而这个"$"就是jQuery当中最重要且独有的对象:jQu ...
- 简单翻译工具--必应词典第三方api使用方法
之前做过一个桌面翻译工具,桌面每日一句--桌面翻译工具(有道翻译,微软翻译,Google翻译) 获取金山每日一句,目前因为 金山每日一句页面改变导致每日一句功能失败,不过这工具自己用得最多的还是翻译功 ...
- Leetcode Distinct Subsequences
Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...
- NAT概述
引言 私有IP是无法在因特网上使用的,而如今普遍使用的宽带网络(ADSL)最多所能提供给用户的IP为16个,最少则为一个,万一企业内部有50台计算机要同时连接上因特网,该如何解决呢?这个问题的正确解决 ...