[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');
    
  });
复制代码

 

posted @   Zhentiw  阅读(255)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示