[Immutable.js] Converting Immutable.js Structures to Javascript and other Immutable Types

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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‘);
    
  });

 

以上是关于[Immutable.js] Converting Immutable.js Structures to Javascript and other Immutable Types的主要内容,如果未能解决你的问题,请参考以下文章

[Immutable.js] Exploring Sequences and Range() in Immutable.js

[Immutable.js] Working with Subsets of an Immutable.js Map()

[Immutable.js] Lightning Fast Immutable.js Equality Checks with Hash Codes

[Immutable.js] Differences between the Immutable.js Map() and List()

[Immutable.js] Transforming Immutable Data with Reduce

Immutable.js使用教程记录