[Immutable.js] Using fromJS() to Convert Plain JavaScript Objects into Immutable Data

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Immutable.js] Using fromJS() to Convert Plain JavaScript Objects into Immutable Data相关的知识,希望对你有一定的参考价值。

Immutable.js offers the fromJS() method to build immutable structures from objects and array. Objects are converted into maps. Arrays are converted into lists. The fromJS() method can also take a reviver function for custom conversions.

 

 Object to Immutable Map:
 
check by isMap():
    const plainJSObject = {
      title: "Go to grocery",
      text: "I need milk and eggs",
      completed: false,
      category: {title: "House Duties", priority: 10}
    };
    
    const immutableTodo = Immutable.fromJS(plainJSObject);
    
    expect(Immutable.Map.isMap(immutableTodo)).to.be.true

 

We cat get value by getIn() method:

expect(immtableTodo.getIn(["category", "title"])).to.equal("House Duties");

 

Array to Immutable List:

check by isList():

    const plainJSArray = [
      "Go to grocery",
      "Buy milk and eggs",
      "Help kids with homework",
      ["Buy Lemons", "Make Lemonade"]
    ];
    
    const immutableTodoList = Immutable.fromJS(plainJSArray);
    expect(Immutable.List.isList(immutableTodoList)).to.be.true;

 

get value by getIn():

expect(immutableTodoList.getIn([3, 1])).to.equal("Make Lemonade")

 

Convert a plain array to Immutable Map:

    const plainJSArray = [
      "Go to grocery",
      "Buy milk and eggs",
      "Help kids with homework",
      ["Buy Lemons", "Make Lemonade"]
    ];

    const immutableTodoList = Immutable.formJS(plainJSArray, (key, value)=>{

         return value.toMap();
    });


    expect(immutableTodoList.getIn([3,1])).to.equal("Make Lemonade");

 

以上是关于[Immutable.js] Using fromJS() to Convert Plain JavaScript Objects into Immutable Data的主要内容,如果未能解决你的问题,请参考以下文章

[Immutable,js] Iterating Over an Immutable.js Map()

[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()