码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-02-22 06:45:45      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:

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

标签:

原文地址:http://www.cnblogs.com/Answer1215/p/5206016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!