zoukankan      html  css  js  c++  java
  • [Javascript] Querying an Immutable.js Map()

    Learn how to query an Immutable.Map() using get, getIn, has, includes, find, first and last. These are powerful operators that make finding data in an object graph pain free.

    has, includes, contains:

    //has()
    var map = Immutable.Map({a: '10'});
    console.log(map.has("a")); //true
    
    //includes / contains
    var todo = {
      id: +new Date(),
      name: "name",
      content: "content"
    };
    var todo2 = {
      id: +new Date(),
      name: "name",
      content: "content"
    };
    
    var todos = Immutable.Map();
    todos = todos.set(todo.id, todo);
    console.log(todos.contains(todo)); //true
    console.log(todos.contains(todo2)); //false

    first(), getIn()

    // first(), getIn()
    
    //Create tow Maps
    var todos = Immutable.Map();
    var todos2 = Immutable.Map();
    
    //Create new Data
    var todo1 = {
      id: +new Date(),
      name: "name",
      content: "content"
    };
    var todo2 = {
      id: +new Date()+1000,
      name: "name",
      content: "content"
    };
    var todo3 = {
      id: +new Date()+3000,
      name: "name",
      content: "content"
    };
    var todo4 = {
      id: +new Date()+4000,
      name: "name",
      content: "content"
    };
    
    //Add data to the map
    todos =todos.set(todo1.id, todo1);
    todos= todos.set(todo2.id, todo2);
    todos2=todos2.set(todo3.id, todo3);
    todos2=todos2.set(todo4.id, todo4);
    
    //Wrap maps in another map
    var multipleTodoStates = Immutable.Map({
        "todo1": todos,
        "todo2": todos2
    });
    
    //Get first todo's id in the first map
    const todoID = todos.first().id; 
    console.log(todoID);
    //Try to find the first todo in deep map
    //"todo1" is the first level map
    //then downto the second level to find the id
    //If nohting return null
    var res = multipleTodoStates.getIn(["todo1", todoID], null);
    var res2 = multipleTodoStates.getIn(["todo2", todoID], null);
    console.log(res);
    console.log(res2);

    find():

    //find()
    var todo = {
      id: +new Date(),
      name: "Wan",
      content: "Finish it"
    };
    
    var todos = Immutable.Map();
    todos = todos.set(todo.id, todo);
    
    var foundTodo = todos.find( (t)=>{
      return t.id === todo.id 
    }, null, null) ;
    
    console.log(foundTodo.id);
  • 相关阅读:
    Python requests 获取网页一般的方法
    python 开发环境安装及配置
    python os模块常用方法及属性小结
    python sys 模块常用方法小结
    python datetime 模块常用方法小结
    python 异常继承关系及自定义异常的实现
    python 第三方模块的安装及模块导入说明
    python 中 if __name__ == '__main__' 的解释
    Bootstrap 标签页(Tab)插件
    Bootstrap 滚动监听(Scrollspy)插件
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4890099.html
Copyright © 2011-2022 走看看