zoukankan      html  css  js  c++  java
  • [Immutable.js] Converting Immutable.js Structures to Javascript and other Immutable Types

    Immutable.js provides several conversion methods to migrate one structure to another. Each Immutable.js class contains a prefixed "to" method like Map.toList(), Map.toSet(), etc. Converting these types sometimes results in a loss of data, as we will see when converting from Map to List.

    Map to List:

      it('should convert Map() to List()', () => {
    
        const map = Immutable.Map({
          key1: 'First Item', 
          key2: 'Second Item'
        });
        
        const convertedList = map.toList();
        
        expect(Immutable.List.isList(convertedList)).to.be.true;
        
        // Keys are discarded
        expect(convertedList.first()).to.equal('First Item');
        expect(convertedList.last()).to.equal('Second Item');
        
      });

    List to Map:

      it('should convert List() to Map()', () => {
    
        const list = Immutable.List.of('First Item', 'Second Item');
        
        const convertedMap = list.toMap();
        
        // Converted keys ascend numerically
        keys = convertedMap.keys();
        expect(keys.next().value).to.equal(0);
        expect(keys.next().value).to.equal(1);
        
        expect(Immutable.Map.isMap(convertedMap)).to.be.true;
        
        expect(convertedMap.first()).to.equal('First Item');
        expect(convertedMap.last()).to.equal('Second Item');
        
      });

    Map to Javascript Array:

      it('should convert Map() to Javascript Array', () => {
    
        const map = Immutable.Map({
          key1: 'First Item', 
          key2: 'Second Item',
          key3: {key4: 'Nested Item'}
        });
        
        const arr = map.toArray();
        
        // Keys are discarded
        expect(arr[0]).to.equal('First Item');
        expect(arr[1]).to.equal('Second Item');
        expect(arr[2].key4).to.equal('Nested Item');
        
      });

    Map to JSON:

      it('should convert Map() to JSON', () => {
    
        const map = Immutable.Map({
          key1: 'First Item', 
          key2: 'Second Item',
          key3: {key4: 'Nested Item'}
        });
        
        const json = map.toJSON();
        
        expect(json.key1).to.equal('First Item');
        expect(json.key2).to.equal('Second Item');
        expect(json.key3.key4).to.equal('Nested Item');
        
      });
  • 相关阅读:
    Java中Runnable和Thread的区别
    Callable,Runnable比较及用法
    如何实现视差滚动效果的网页?
    【175】Easy CHM的使用
    【174】C#添加非默认字体
    【173】双显示器随便切换位置
    【172】outlook邮箱设置
    【171】IDL读取HDF文件
    怎样实现二级联动
    Java 23种设计模式详尽分析与实例解析之二--结构型模式
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5206016.html
Copyright © 2011-2022 走看看