gpt4 book ai didi

javascript - getIn() 在 Immutable.js 中做了什么?

转载 作者:可可西里 更新时间:2023-11-01 01:47:53 24 4
gpt4 key购买 nike

不幸的是文档非常稀少:

https://facebook.github.io/immutable-js/docs/#/Map/getIn

有人举个例子吗?我猜测如果我有一个像这样的 myObject :

  a: {
b:{
c:"banana"
}
}

那个

myObject.getIn(["a", "b", "c"])

将返回香蕉。

然而,不可变对象(immutable对象)也可以是映射对象,这让我非常困惑。

最佳答案

不久:

map.getIn(["a", "b", "c"])map.get("a").get("b").get("c") 的快捷方式

详情:

您可能已经进入了一个fromJS陷阱。调用:

const map = Immutable.fromJS({a: {b: {c: "banana"}}});

创建一个 Map只有 key a ,它的值也是一个 Map只有 key b ,它的值也是一个 Map只有 key c和值(value)banana .

换句话说fromJS进入所提供对象的深处,并定义 Map对于每个 Object和一个 List对于每个 Array

在这个例子中,调用 map.getIn(["a", "b", "c"])map.get("a").get("b").get("c") 的捷径

但是如果你定义map作为Map :

const map = new Immutable.Map({a: {b: {c: "banana"}}});

它创建一个 map ,只有键a ,它的值是普通对象 {b: {c: "banana"}} , 并调用 map.get("a").get("b").get("c")会给你类似 get is not a function 的东西, 自 map.get("a")将返回 {b: ...}普通对象。

同样的原因是为什么 map.getIn(["a", "b", "c"])不会像您预期的那样工作。

关于javascript - getIn() 在 Immutable.js 中做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43515723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com