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()的更多相关文章

  1. [Javascript] Querying an Immutable.js Map()

    Learn how to query an Immutable.Map() using get, getIn, has, includes, find, first and last. These a ...

  2. -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法

    -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法: 错误:NSMutableD ...

  3. Immutable Object模式

    多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行加锁.而锁本身又会带来一些问题和开销.Immutable Object模式使得我们可以在不使用锁的情况下,既保证共享变量访问的线 ...

  4. 在使用可变数组过程中遇到*** 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 ...

  5. Java多线程编程模式实战指南(二):Immutable Object模式

    多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行加锁.而锁本身又会带来一些问题和开销.Immutable Object模式使得我们可以在不使用锁的情况下,既保证共享变量访问的线 ...

  6. Java多线程编程模式实战指南(二):Immutable Object模式--转载

    本文由本人首次发布在infoq中文站上:http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-immutable-o ...

  7. Immutable Object模式 - 多线程

    Immutable Object模式 - 多线程 前言 在多线程编程中,我们常会碰到修改一个对象的值,如果在不加锁的情况下 ,就会出现值不一致的问题,那么有没有一种方式可以不通过加锁的方式也可以保证数 ...

  8. [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 ...

  9. 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 ...

随机推荐

  1. 使用PHP脚本来写Daemon程序

    什么是Daemon进程   这又是一个有趣的概念,daemon在英语中是"精灵"的意思,就像我们经常在迪斯尼动画里见到的那些,有些会飞,有些不会,经常围着动画片的主人公转来转去,啰 ...

  2. C#中标准Dispose模式的实现

    http://www.cnblogs.com/luminji/archive/2011/03/29/1997812.html 需要明确一下C#程序(或者说.NET)中的资源.简单的说来,C#中的每一个 ...

  3. new作为修饰符

    new 修饰符与 new 操作符是两个概念 new 修饰符用于声明类或类的成员,表示隐藏了基类中同名的成员.而new 操作符用于实例化一个类型 new 修饰符只能用于继承类,一般用于弥补基类设计的不足 ...

  4. Python学习 - 编写自己的ORM(2)

    上一篇文章简单的实现了ORM(对象关系模型),这一篇文章主要实现简单的MySQL数据库操作. 想要操作数据库,首先要建立一个数据库连接.下面定义一个创建数据库连接的函数,得到一个连接叫做engine. ...

  5. xadmin的插件机制

    xadmin的视图方法中如果加了@filter_hook 标记的都可以作为插件的钩子函数. 例如在ListAdminView类中有许多加了上述标记的方法, @filter_hook def get_c ...

  6. uboot内存分布

    一.uboot的内存分布图 山人自己画的图 华清远见的图 二.如何修改编译地址 board/smdk2410/config.mk中定义有TEXT_BASE TEXT_BASE = 0x33F80000 ...

  7. 关于if/else if

    今天写存储过程的时候发现了个问题,就是在用if.elsif拼接sql的时候,得到的结果跟想象中 的不一样,大概描述是:  我传进去多个参数,然后判断每个字段是否为空,非空则将字段拼接上去,结果跟预料的 ...

  8. 优先级和lisp式前缀表达式

    if(f(a,b) > 0) # 1 if(f(a, b>0)) # 2 上面在调用f的时候,1使用括号表明了参数的优先级,不然会出现2这样的情况. 而使用lisp式的前缀表达式则不会有不 ...

  9. bzoj 3545&&3551: [ONTAK2010]Peaks &&加强版 平衡树&&并查集合并树&&主席树

    3545: [ONTAK2010]Peaks Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 635  Solved: 177[Submit][Stat ...

  10. hdu 1576 A/B 拓展欧几里得算法

    A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...