zoukankan      html  css  js  c++  java
  • [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); //1
    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();
  • 相关阅读:
    [编程题] 基础 [位运算基础]
    [编程题] lc [191. 位1的个数]
    [编程题] lc [69. x 的平方根]
    php 中php-fpm工作原理
    redis分布式锁
    3种Redis分布式锁的对比
    php使用数据库的并发问题(乐观锁与悲观锁)
    php观察者模式应用场景实例详解
    [Usaco2008 Jan]电话网络
    关于二分图结论的一些证明
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4889941.html
Copyright © 2011-2022 走看看