zoukankan      html  css  js  c++  java
  • Immutable

    创建数据的方式

    const map = immutable.Map({
        a : 1,
        b : 2,
        c : {
            f : 5
        }
    })
    
    const map = immutable.fromJS({
        a:1,
        b:2,
        c:3,
        d : {
            f : 4
        }
    })
    const list = immutable.List(
        [1,2,3,4,[1,2]]
    )
     
    //两种方式的不同在于map list只能创建一层的immutable对象结构  如果使用fromJS可以进行深层次的immutable数据转换

    数据转换

    list.toJS() // 转为js结构
    immutable.fromJS(obj) // 转为immutable结构

    对比两个immutable对象是否相等(对象下如果还有对象元素,必须也为immutable对象结构才会返回false)

    const map = immutable.Map({a : 1,b : 2});
    const map1 = map.update("a",()=>x=10);
    console.log(immutable.is(map1,map))//false
    //对比两个immutable如果相同返回true,不同则返回false

    增删改查

    const map = immutable.fromJS({
        a : 1,
        b : 2,
        c : [1,2,3],
        f : { a : 1  }
    })
    //set和setIn都可以增加,但是setIn可以增加多层
    // 增
    map.set("d",10)

    map.setIn(["d" , "sex"],"男")
    //删
    map.delete("a")
    map.deleteIn(["c",0])
    // 改
    map.update("a",(x)=>x=3)
    map.updateIn(["c",0],(x)=>x=10)
    //查
    map.get("a")
    map.getIn(["c",0])
     

    合并,查看长度

    /合并
    const list1 = immutable.fromJS([1,2,[1,2]]);
    const list2 = immutable.fromJS([7,8,[1,3]]);
    const newList =list1.merge(list2)
    console.log(newList)//List [ 1, 2, List [ 1, 2 ], 7, 8, List [ 1, 3 ] ]
    const list1 = immutable.fromJS([1,2,[1,2]]);
    const list2 = immutable.fromJS([7,8,[1,3]]);
    const newList =list1.merge(list2)
    const map = immutable.fromJS({a:1,b:2})
    //查看长度
    console.log(map.size)//2
    console.log(newList.count())//6

    ***

  • 相关阅读:
    禁用aspx页面的客户端缓存
    水晶报表的自动换行(转)
    ORACLE锁的管理
    同时使用有线和无线
    Oracle系统表的查询
    Oracle中临时表的深入研究
    我的My Life Rate
    [学习笔记]c#Primer中文版命名空间
    出差兰州·火车上
    [学习笔记]c#Primer中文版类设计、static成员、const和readonly数据成员
  • 原文地址:https://www.cnblogs.com/jingguorui/p/14075398.html
Copyright © 2011-2022 走看看