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);
  • 相关阅读:
    BCB编写DLL终极手册
    C++Builder常用函数
    c++与js脚本交互,C++调用JS函数JS调用C++函数
    JS调用C++
    c&c++MFC 调用 js 函数代码
    C++调用JS,JS调用C++
    MFC基础类及其层次结构
    MFC文档视图结构学习笔记
    深入理解JVM虚拟机1:JVM内存的结构与永久代的消失
    深入理解JVM虚拟机开篇:JVM介绍与知识脉络梳理
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4890099.html
Copyright © 2011-2022 走看看