zoukankan      html  css  js  c++  java
  • [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");
  • 相关阅读:
    mysql索引需要了解的几个注意
    apache配置--虚拟目录
    简化LINUX的命令输入 简化linux命令 快捷键 短路径
    apache vhost 访问权限配置
    php中常用设置
    win7配置nginx + php
    restful php
    php 笔记 汇总 学习
    mysql修改表结构
    mysql 优化工具
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5205810.html
Copyright © 2011-2022 走看看