[Javascript] Creating an Immutable Object Graph with Immutable.js Map()
Learn how to create an Immutable.Map() through plain Javascript object construction and also via array tuples.
console.clear();
// Can be an object
var map = Immutable.Map({key: "value"});
console.log(map.get("key")); //"value" // Can be an array
var map = Immutable.Map([["key", {"name": "Zhentian"}]]);
console.log(map.get("key").name); //"Zhentian" // size prop
console.log(map.size); //
mocha.setup('bdd');
const expect = chai.expect; function createObjTodos(numTodos) { var obj = {}
_.each(_.range(numTodos), (index) => {
const todoSequence = String(index+1);
obj['todo'+todoSequence] = {
title: 'Todo '+todoSequence,
value: `Make ${todoSequence} happen`
};
}); return obj; } describe('Creating an Immutable Object Graph with Immutable.js Map()', () => { it('should create Map() with matching keys', () => { const data = {
"todo1": {
title: "Todo 1",
value: "Make it happen"
},
"todo2": {
title: "Todo 2",
value: "Make it happen"
}
} let map = Immutable.Map(data);
expect(map.get("todo1").title).to.equal("Todo 1"); }); it('should create Map() with keys from array tuples', () => { let map = Immutable.Map([["todo1", {title: "Todo 1"}]]) // Note the array within array
expect(map.get("todo1").title).to.equal("Todo 1"); }); it('should create Map() with matching size to number of keys', () => { let map = Immutable.Map(createObjTodos(3))
expect(map.size).to.equal(3); }); }); mocha.run();
[Javascript] Creating an Immutable Object Graph with Immutable.js Map()的更多相关文章
- [Javascript] Querying an Immutable.js Map()
Learn how to query an Immutable.Map() using get, getIn, has, includes, find, first and last. These a ...
- -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法
-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法: 错误:NSMutableD ...
- Immutable Object模式
多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行加锁.而锁本身又会带来一些问题和开销.Immutable Object模式使得我们可以在不使用锁的情况下,既保证共享变量访问的线 ...
- 在使用可变数组过程中遇到*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'问题
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFD ...
- Java多线程编程模式实战指南(二):Immutable Object模式
多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行加锁.而锁本身又会带来一些问题和开销.Immutable Object模式使得我们可以在不使用锁的情况下,既保证共享变量访问的线 ...
- Java多线程编程模式实战指南(二):Immutable Object模式--转载
本文由本人首次发布在infoq中文站上:http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-immutable-o ...
- Immutable Object模式 - 多线程
Immutable Object模式 - 多线程 前言 在多线程编程中,我们常会碰到修改一个对象的值,如果在不加锁的情况下 ,就会出现值不一致的问题,那么有没有一种方式可以不通过加锁的方式也可以保证数 ...
- [Immutable.js] Differences between the Immutable.js Map() and List()
The Immutable.js Map() is analogous to a Javascript Object or Hash since it is comprised of key-valu ...
- An unexpected exception occurred while creating a change object. see the error log for more details
今天再给Android项目工程中的包重命名时出现了这个错误(之前重命名的时候就没有出现,郁闷): An unexpected exception occurred while creating a c ...
随机推荐
- InstallShield:自己备份
LIST listData;//声明listData listData = ListCreate(STRINGLIST);//创建一个空的实际字符串或数字列表. //参数都是在上个界面中赋值,然后在下 ...
- C#中标准Dispose模式的实现
http://www.cnblogs.com/luminji/archive/2011/03/29/1997812.html 需要明确一下C#程序(或者说.NET)中的资源.简单的说来,C#中的每一个 ...
- 安装python-MySQLdb 出现error: command 'gcc' failed with exit status 1的解决方法
>>> yum install MySQL-p* >>>yum install python-devel >>>cd MySQL-python-1 ...
- Silverlight中在MVVM模式下对DatagridRow选择控件封装
在项目中,凡是涉及到表格的地方用的最多的控件,自然少不了DataGrid的身影,它明了的展示各种数据让人十分喜欢.现在要实现一个功能,使DataGrid具有全选和项选中的功能,如果在传统后台代码中完成 ...
- 使用linux的GDB打印STL(vector,map,set..................)
在linux用gdb或者cgdb计较不爽的地方是无法打印STL的东西,所有啊去网上找了找解决方案https://www.douban.com/note/182826844/?qq-pf-to=pcqq ...
- encodeURL() vs encodeRedirectURL()
当用URL重写方式来管理Session的时候,通过以上两个方法把session ID写到URL中.不同点是:两个方法确定是否需要包含session ID的逻辑不同.在调用HttpServletResp ...
- MacOS快捷键
- 【HDU2825】Wireless Password (AC自动机+状压DP)
Wireless Password Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u De ...
- oracle中有关用户、角色的一些概念。
oracle中的每个用户对应一个单独的方案(schema),方案的名字与用户名一样,方案中包含很多数据对象,表,视图,触发器,存储过程等元素. oracle中管理数据库的角色有sys,system,数 ...
- MySQL数据表修复, 如何修复MySQL数据库(MyISAM / InnoDB)
常用的Mysql数据库修复方法有下面3种: 1. mysql原生SQL命令: repair 即执行REPAIR TABLE SQL语句 语法:REPAIR TABLE tablename[,table ...