Javascript immutableJS-updateIn方法不';I don’我没有按预期工作

Javascript immutableJS-updateIn方法不';I don’我没有按预期工作,javascript,immutable.js,Javascript,Immutable.js,我在immutable js中有一个这样的结构图: myMap = { a: { b: { c: [ { d: "something1", ... }, { d: "something2", ... } ], ... }, ... }, ... } 然后我想更新ds的值 我试过: myMa

我在immutable js中有一个这样的结构图:

myMap = {
    a: {
        b: {
            c: [
                { d: "something1", ... },
                { d: "something2", ... }
            ],
            ...
        },
        ...
    },
    ...
}
然后我想更新
d
s的值

我试过:

myMap.updateIn(["a", "b", "c"], (each) => {
    each.set("d", "something else");
});
比如:

myMap.updateIn(["a", "b", "c"], (each) => {
    each.map((e) => {
        e.set("d", "something else");
    });
});
但正如你所知,这些都不起作用


如何更新
d
s的值?

我找到了上面的代码无法工作的原因

首先,第二个代码部分正确,但第一个代码错误

部分表示逻辑正确,但ES6语法不正确

因此,正确的代码是:

const updatedMyMap = myMap.updateIn(["a", "b", "c"], each => 
    each.map(e => e.set("d", "something else"))
);
在,

(param1,param2,…,paramN)=>{statements}

(param1,param2,…,paramN)=>表达式

//等价于:(param1,param2,…,paramN)=>{return expression;}

这就是我的代码不起作用的原因


我应该返回
map()

的结果,最后一个代码片段看起来不错。我会说这应该行得通。@JoshuaK不,对我来说不行:(你能试试吗?当我尝试第二个时,
myMap
的值没有改变。是的。我试过了。它行得通。这是一个@JoshuaK你的代码行得通,但我上面的代码不行。最后,我找到了原因。那是因为
{}
在我的代码中。是我的错误代码。