您的位置:首页 > Web前端 > JavaScript

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

2016-02-22 04:22 507 查看
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');

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: