• 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

    ***

  • 相关阅读:
    今天的进度又慢了
    继续还有一些基本功能
    没什么事情
    今天好冷啊
    估计下周一就不去了
    再次出发
    诡异的php curl error Empty reply from server
    postgresql interval 字段拼接
    使用root用户通过SSH登录Linux实例时报“Permission denied, please try again”的错误
    pgsql 记录类型
  • 原文地址:https://www.cnblogs.com/jingguorui/p/14075398.html
Copyright © 2020-2023  润新知