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

    ***

  • 相关阅读:
    DX 系列之 ComboBoxEdit
    nodejs web API 相关杂项
    解决跨域No 'Access-Control-Allow-Origin' header is present on the requested resource.
    git在本地回退
    docker容器访问宿主机IP
    mongodb+nodejs
    docker-compose控制启动顺序
    angular7 + d3 显示svg
    新建ng工程
    CSS样式
  • 原文地址:https://www.cnblogs.com/jingguorui/p/14075398.html
Copyright © 2011-2022 走看看